手记

jquery的知识必记点——程序员飞升上神历劫中!(事件篇)

jquery事件篇
1鼠标事件
1)click与dbclick事件
方法一:$ele.click()
方法二:$ele.click( handler(eventObject) )
方法三:$ele.click( [eventData ], handler(eventObject) )
2)mousedown与mouseup事件
方法一:$ele.mousedown()
方法二:$ele.mousedown( handler(eventObject) )
方法三:$ele.mousedown( [eventData ], handler(eventObject) )
3)mousemove事件
方法一:$ele.mousemove()
方法二:$ele.mousemove( handler(eventObject) )
方法三:$ele.mousemove( [eventData ], handler(eventObject) )
4)mouseover与mouseout事件
方法一:$ele.mouseover()
方法二:$ele.mouseover( handler(eventObject) )
方法三:$ele.mouseover( [eventData ], handler(eventObject) )
5)mouseenter与mouseleave事件
这里的问题是div为什么会被触发? 原因就是事件冒泡的问题,p元素触发了mouseover,他会一直往上找父元素上的mouseover事件,如果父元素有mouseover事件就会被触发
所以在这种情况下面,jQuery推荐我们使用 mouseenter事件
6)hover事件
在元素上移进移出切换其换色,一般通过2个事件配合就可以达到,这里用mouseenter与mouseleave,这样可以避免冒泡问题
在元素上移进移出切换其换色,一般通过2个事件配合就可以达到,这里用mouseenter与mouseleave,这样可以避免冒泡问题
7)focusin事件
方法一:$ele.focusin()
方法二:$ele.focusin( handler )
方法三:$ele.focusin( [eventData ], handler )
8)focusout事件
方法一:$ele.focusout()
方法二:$ele.focusout( handler )
方法三:$ele.focusout( [eventData ], handler )
2.表单事件
1)blur与focus事件
focus()在元素本身产生,focusin()在元素包含的元素中产生
2)change事件
input元素
监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。
select元素
对于下拉选择框,当用户用鼠标作出选择时,该事件立即触发
textarea元素
多行文本输入框,当有改变时,失去焦点后触发change事件
3)select事件
方法一:.select()
方法二:$ele.select( handler(eventObject) )
方法三:$ele.select( [eventData ], handler(eventObject) )
4)submit事件
方法一:$ele.submit()
方法二:$ele.submit( handler(eventObject) )
方法三:$ele.submit( [eventData ], handler(eventObject) )
3.键盘事件
1)keydown()与keyup()
//直接绑定事件
$elem.keydown( handler(eventObject) )
//传递参数
$elem.keydown( [eventData ], handler(eventObject) )
//手动触发已绑定的事件
$elem.keydown()
2)keypress()事件
keypress事件与keydown和keyup的主要区别
只能捕获单个字符,不能捕获组合键
无法响应系统功能键(如delete,backspace)
不区分小键盘和主键盘的数字字符
4.事件的绑定
1)on事件
基本用法:.on( events ,[ selector ] ,[ data ] )
委托机制:.on( events ,[ selector ] ,[ data ], handler(eventObject) )
2)off事件
绑定2个事件
$("elem").on("mousedown mouseup",fn)
删除一个事件
$("elem").off("mousedown")
删除所有事件
$("elem").off("mousedown mouseup")
快捷方式删除所有事件,这里不需要传递事件名了,节点上绑定的所有事件讲全部销毁
$("elem").off()
5.事件对象的使用
$(elem).on("click",function(event){
event //事件对象
event.target//事件原对象
})常用与实践委托实践,event一般指的的当前父元素,event.target指的是出发的元素
event.type:获取事件的类型
触发元素的事件类型
$("a").click(function(event) {
alert(event.type); // "click"事件
});
event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标
event.preventDefault() 方法:阻止默认行为
event.stopPropagation() 方法:阻止事件冒泡
event.which:获取在鼠标单击时,单击的是鼠标的哪个键
event.currentTarget : 在事件冒泡过程中的当前DOM元素
this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素;
.this和event.target都是dom对象
如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用;
6.自定义事件
$('#elem').on('Aaron', function(event,arg1,arg2) {
alert("自触自定义时间")
});
$('#elem').trigger('Aaron',['参数1','参数2'])

1人推荐
随时随地看视频
慕课网APP