JQuery基础总结三:事件篇
基础-事件篇
1.jquery鼠标事件之click与dbclick事件
第一种:
$("ele").click(function(){
alert('触发指定事件')
});
$("ele").click() //手动指定触发事件
第二种:
$('p').click(function(e) {
alert(e.target.textcontent)
});
第三种:
$("button:eq(2)").click(1111, function(e){
alert(e.data); //1111
});
2.jquery鼠标事件之mousedown与mouseup事件(鼠标按下,释放事件)
3.jquery鼠标事件之mousemove事件(在固定区域里移动触发)
4.jquery鼠标事件之mouver与mouseout事件
5.jquery鼠标事件之mouseenter与mouseleave事件
和mouseover与mouseout事件差不多,但是这里的两个事件不会冒泡
6.jquery鼠标事件之hover事件(处理一些简单的移入移出事件)
function handlerin(){ //移入事件发生 }
function handlerout(){ //移入事件发生 }
$(selector).hover(handlerin, handlerout);
hover()这个方法里头封装的是mouseenter(), mouseleave()两个方法, 可以阻止冒泡问题.
7.jquery鼠标事件之focusin与focusout事件 (元素获得/失去焦点时触发)
8.jquery表单事件之blur与focus事件
与focusin与focusout事件差不多,但是这里的事件不支持冒泡
9.jquery表单事件之change事件
<input>元素,<textarea>和<select>元素的值都是可以发生改变的,开发者可以通过change事件去监听这些改变动作
监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。
10.jquery表单事件之select事件
当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
select事件只能用于<input>元素与<textarea>元素
11.jquery表单事件之submit事件
<form id="target1" action="test.html">
回车键或者点击提交表单:
<input type="text" value="输入新的值" />
<input type="submit" value="go" />
</form>
jq:
$('#target1').submit(function(e) {
if(不通过验证的事情){
//处理code
return false;//阻止默认事件(将数据提交到test.html)
}
});
12.jquery键盘事件之keydown()与keyup()事件
keydown是在键盘按下就会触发
keyup是在键盘松手就会触发
理论上它可以绑定到任何元素,但keydown/keyup事件只是发送到具有焦点的元素上,不同的中,可获得焦点的元素略有不同,但是表单元素总是能获取焦点,所以对于此事件类型表单元素是最合适的。
13.jquery键盘事件之keypress()事件
keypress()=keydown()+keyup()
与keydown()的区别:在keydown中返回的是键盘的代码, 而keypress返回的是ascii字符
14.on()的多事件绑定
用法一:
$("#elem").on('click',function(){}) //on方式
用法二:(多事件绑定同一函数)
$("#elem").on("mouseover mouseout",function(){ });
用法三:(多事件绑定不同函数)
$("#elem").on({
mouseover : function(){},
mouseout : function(){}
});
用法四:(将数据传递到处理程序)
function greet( event ) {
alert( "hello " + event.data.name ); //hello 慕课网
}
$( "button" ).on( "click", {name: "慕课网"}, greet );
高级用法:
<p class="left">
<p class="aaron">
<a>目标节点</a> //点击在这个元素上
</p>
</p>
jq:
$("p").on("click","p",fn);
事件绑定在最上层p元素上,当用户触发在a元素上,事件将往上冒泡,一直会冒泡在p元素上。如果提供了第二参数,那么事件在往上冒泡的过程中遇到了选择器匹配的元素,将会触发事件回调函数
15.卸载事件off()方法 (卸载通过on绑定的事件)
$("elem").off("mousedown") 删除一个事件
$("elem").off("mousedown mouseup") 删除多个事件
$("elem").off() 删除所有事件
16.jquery事件对象的作用
$(elem).on("click",function(event){
event //事件对象
});
触发目标的文本内容:event.target.textcontent
事件类型:event.type
获取鼠标当前相对于页面的坐标:event.pagex 和 event.pagey
阻止默认行为:event.preventdefault()
阻止冒泡:event.stoppropagation()
获取单击鼠标是哪个:event.which (左键报告1,中间键报告2,右键报告3)
触发事件的当前元素:event.currenttarget (等同于this)
注意:
this和event.target的区别:js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标dom元素;
.this和event.target都是dom对象。如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用;
17.jquery自定义事件之trigger事件 (会触发默认事件)
<h2>自定义事件trigger</h2>
<p class="left">
<p><span></span><span>0</span>点击次数</p>
<button>直接点击</button>
<button>通过自定义点击</button>
</p>
<script type="text/javascript">
//点击更新次数
$("button:first").click(function(event,bottonname) {
bottonname = bottonname || 'first';
update($("span:first"),$("span:last"),bottonname);
});
//通过自定义事件调用,更新次数
$("button:last").click(function() {
$("button:first").trigger('click','last'); //调用click事件,并传入参数值为‘last’
});
function update(first,last,bottonname) {
first.text(bottonname);
var n = parseint(last.text(), 10);
last.text(n + 1);
}
</script>
18.jquery自定义事件之triggerhandler事件
$("button:first").triggerhandler('click','last');