jQuery事件注册有两种方式:常规注册和on()方法注册
常规注册:eventName(callback)
on()方法注册 on(eventName,callback)
on()方法还支持事件委托和自定义事件
事件委托:on('eventName',"子元素选择器",callback)
注意:回调函数中的this为对应的原生dom元素
<body> <ul id="ul"> <li>li - 1</li> </ul> </body> <script> // 常规注册 $("#ul").click(function(){ //this 为原生的dom元素 console.log("click ul") }) // on()方法注册 $("#ul").on("click",function(){ console.log("click ul-- on") }) // 动态添加子元素 var $li = $("<li id='test'>li - 2</li>") $("#ul").append($li) // 通过事件委托为子元素添加事件监听 $("#ul").on("click","#test",function(){ console.log("click li-- on") }) // 注册自定义事件 $("#ul").on("removeFirstChild",function(){ //将this转换为jquery元素,并调用jquery方法移除第一个子元素 $(this).children().eq(0).remove() }) </script>
方法一:直接调用事件函数(只能用于原生的dom事件,例如click之类的)
语法:eventName()
方法二:(除了能触发原生的dom事件,还能触发自定义事件)
语法:trigger('eventName')
注意:无论是常规注册和on()方法注册事件监听都会触发
<body> <ul id="ul"> <li>li - 1</li> </ul> </body> <script> // 这里省略的注册事件的代码 // 直接调用点击事件函数 $("#ul").click() // 直接调用事件函数触发li元素点击事件 $("#test").click() // trigger()方法触发click事件 $("#ul").trigger("click") // trigger()方法除了自定义事件 $("#ul").trigger("removeFirstChild") </script>
off()方法可以解除当前元素绑定的事件监听,包括自定义事件
语法:off('eventName')
如果不传参数,则解绑所有的事件监听
// 解绑所有事件监听 $("#ul").off() //解除click事件监听 $("#ul").off("click") // 解除自定义事件 $("#ul").off("removeFirstChild")
jQuery支持原生的点击事件
来源:博客园
作者:---空白---
链接:https://www.cnblogs.com/OrochiZ-/p/11626230.html