1.鼠标事件
单击:click([[data],fn])
双击:dblclick([[data],fn])
$('.div).click(function(){
console.log("click");
});
注意:双击事件中必然会有单击事件
鼠标按下:mousedown
鼠标放开:mouseup
鼠标进入:mouseenter
鼠标移出:mouseleave
鼠标悬停:hover([over],out)
,鼠标进入和退出时触发两个函数,相当于mouseenter
加上mouseleave
$('.div).hover(function(){
console.log("enter");
},function(){
console.log("leave");
});
鼠标进入和退出指定元素及其子元素时触发:mouseover
,mouseout
鼠标进入子元素时会触发,离开子元素时也会触发。如果一个元素有多个子元素,鼠标从外进到内部时该事件将触发多次。
鼠标移动(在DOM内部):mousemove
鼠标滚动:scroll
2.键盘事件
键盘或按钮被按下:keydown([[data],fn])
按钮被松开时:keyup
,它发生在当前获得焦点的元素上。
当键盘或按钮被按下时,发生keypress
事件。必须是有输入内容的时候才能触发,例如输入法干扰、ctrl、windows组合键时不能触发。
3.其他事件
DOM载入就绪:ready(fn)
当调整浏览器窗口大小时触发:resize([[data],fn])
,注意,DOM的大小和window的大小没有直接关系,因此该事件需要有window对象来触发。
$(window).resize(function(){
console.log($(this));
});
元素获得焦点:focus([[data],fn])
元素失去焦点:blur([[data],fn])
检测到内容发生改变:change
,例如input的value,输入时不会触发,键入回车或点击向上向下按钮(NUMBER)或改变日期(date)时触发。以轮值方式检测,并不是实时的,因此当改变非常快时,事件触发会跟不上改变的速度。
当textarea或文本类型的input元素中的文本被选择时:select
提交表单时:submit([[data],fn])
$('form').submit(function(){
console.log("sucess");
return true;
});
4.事件参数
event
:所有的事件都会传入event对象作为参数,可以从event对象上获取到更多信息。
5.事件绑定与取消
5.1 事件绑定
on(events,[selector],[data],fn):在选择元素上绑定一个多个事件的事件处理函数。
$('a').click({
console.log("a");
});
相当于
$('a').on('click',function(event){
console.log("a");
});
在加上第二个参数(选择器)
$(document).on('click','a',function(event){
console.log("a");
});
绑定多个事件处理函数的情况:
$('a').on(
mouseenter:function(event){
console.log("enter");
},
mouseleave:function(event){
console.log("leave");
}
);
5.2 事件取消
off(events,[selector],fn):在选择元素上移除一个多个事件的事件处理函数。
5.2 只绑定一次
one(type,[data],fn):为每一个匹配元素的特定事件,比如(click)绑定一个一次性的事件处理函数。