JQuery中的常用事件
.click() |
鼠标单击触发事件,参数可选(data,function) |
.dblclick() |
双击触发,同上 |
.mousedown()/up() |
鼠标按下/弹起触发事件 |
.mousemove() |
鼠标移动事件 |
.mouseover()/out() |
鼠标移入/移出触发事件 |
.mouseenter()/leave() |
鼠标进入/离开触发事件* |
.hover(func1,func2) |
鼠标移入调用func1函数,移出调用func2函数 |
.focusin() |
鼠标聚焦到该元素时触发事件 |
.focusout() |
鼠标失去焦点时触发事件 |
. focus()/.blur() |
鼠标聚焦/失去焦点触发事件(不支持冒泡) |
.change() |
表单元素发生改变时触发事件 |
.select() |
文本元素被选中时触发事件 |
.submit() |
表单提交动作触发* |
.keydown()/up() |
键盘按键按下/弹起触发 |
.on() |
多事件的绑定 |
.off() |
移除事件的绑定 |
.trigger(“event”) |
触发事件event调用 |
.triggerHandler() |
触发事件,不会冒泡,不会触发默认事件 |
注:
1、以上事件函数大多有三种用法:
- //直接绑定事件到元素上
- $elem.keydown( handler(eventObject) )
- //传递参数调用函数handler处理
- $elem.keydown( [eventData ], handler(eventObject) )
- //手动触发已绑定的事件
- $elem.keydown()
2、mouseover与mouseenter区别:不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件,称作支持冒泡处理,冒泡处理指子元素与父元素共同定义的事件,在触发子元素时,或者没有定义子元素,事件就会向父级传播,引发父级事件触发。只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件。
3、form元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为。传统的方式是调用事件对象 e.preventDefault() 来处理, jQuery中可以直接在函数中最后结尾return false即可。
4、on()使用
基本用法:.on( events ,[ selector ] ,[ data ] )
最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同
- $("#elem").click(function(){}) //快捷方式
- $("#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 Mr.Tory
}
$( "button" ).on( "click", {
name: "Mr.Tory"
}, greet );
可以通过第二参数(对象),当一个事件被触发时,要传递给事件处理函数的
JQuery的事件对象属性与方法
.type |
事件类型.如果使用一个事件处理函数来处理多个事件, 可以使用此属性获得事件类型,比如click |
||
.data |
事件调用时传入额外参数 |
||
.target |
|
||
.which |
指示按了哪个键或按钮 |
||
.timeStamp |
该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数 |
||
.pageX/Y |
相对于文档左/上边缘的鼠标位置 |
||
.result |
上一个相同事件处理器函数返回的值 |
||
.preventDefalut() |
阻止事件的默认动作 |
||
.stopPropagation() |
取消事件冒泡 |