jQuery事件

匿名 (未验证) 提交于 2019-12-02 21:53:52

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支持原生的点击事件

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!