jQuery常用事件总结
1 鼠标事件
.click() 鼠标点击,不用说了,最基础的
.dbclick() 双击
.mousemove() 移动
.mouseenter() 移入
.mouseleave() 移出
.mousehover(func1(){},func2(){}) 移入移出
以下不常用
.mouseover() 移入,具有冒泡效应
.mouseout() 移出,具有冒泡效应
.mousedown() 鼠标按键按下
.mouseup() 鼠标按键松开
ps: .mousehover( )方法两个参数都是函数,分别是处理进入和离开的回调函数。
除mousehover外的方法,参数都有以下几种:
- 无参:指定触发该事件
- 有参数:[eventData],function(event){ }
其中eventData是数据参数,用于处理不同作用域数据传递问题。event.data获取该数据。
ps:event指的是该事件。
事件间的冒泡
“冒泡”是一种排序算法,这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
例如以下html结构:
<div style='width=100%;height=100%'>
<p>绑定mouseout事件</p>
</div>
冒泡现象: 假如div和p都绑定了mouseout事件,当鼠标移出p元素,触发p元素的mouseout事件,但并没有移出div元素区域,依然会触发div元素的mouseout事件。
“冒泡”形义为水泡越往上浮体积越大,将他移植到事件间的触发上很容易理解。
阻止冒泡:event.stopPropagation()阻止事件冒泡
2 表单事件
.focusin() 得到光标焦点时
.focusout() 失去光标焦点时
.change() value值改变则触发
.select() input元素与textarea元素内容被选中则触发
.submit() 表单提交时触发
其中:
.submit(function(){
...
return false; 阻止表单提交
})
return false等效于同时调用e.preventDefault( )和e.stopPropagation( )
e.preventDefault( )阻止默认行为。如:
<a>
的默认行为是跳转,<form>的默认行为是提交
。
return false 除了阻止默认行为之外,还会阻止事件冒泡。如果手上有一份jquery源代码的话,可查看其中有如下代码:
if (ret===false){
event.preventDefault();
event.stopPropagation();
}
3 键盘事件
.keydown() 键盘按下触发
.keyup() 键盘松开触发
可用event.target.value监听用户的按键
4 ‘on’绑定事件
函数结构:
on( events ,[ selector ] ,[ data ], handler(eventObject) )
常规方式:
$ele.on('click',function( ){ })
多事件绑定同一函数:多事件名之间空格分隔
$ele.on('mouseenter mouseleave',function( ){ })
多事件绑定不同函数:只有一个对象参数
$(ele).on({
mouseenter:function( ){},
mouseleave:function( ){},
})
传递数据:第二个参数为对象数据
$ele.on('click',{name:'ivan'},function(event){
alert(event.data.name);
})
委托机制
on第二个参数提供了一个selector选择器。
如下html结构:
<div>
<p>
<a>目标节点</a>
</p>
</div>
jQuery代码:
$('div').on('click','p',fn)
虽然绑定的是div元素,但通过第二个selector参数将事件委托到了p元素上。