那么当你点击一个元素时,事件就会在DOM树上往上传递,直至到达根节点。这个事件的触发器已经在根节点被.live()创建。这个触发方法将首先检测被点击的目标看是否和.live()调用的选择器相匹配。如果匹配,那么绑定的方法就会执行了。
因为不管你在根节点内点击了什么,根节点的事件都会被触发,当你点击加入到根节点的任何元素时这个检查都会发生。
比如你要给一个还没有添加在页面中的id为“ABC”元素添加click事件。
实际上你要给document元素添加click事件。
并且在document的click回调函数中,判断事件源event.target。然后判断它的ID是“ABC”则执行相应的事件函数。类似这样。
1、新建一个静态页面bind.html,并引入jquery核心文件。
2、在<body></body>标签中,插入一个button按钮,添加id属性值。
3、在<script></script>标签中,添加按钮点击事件,利用on()方法绑定。
4、保存代码并运行项目,打开浏览器查看界面效果,点击按钮查看控制台。
5、将on()方法改为bind()方法,然后保存代码,点击按钮查看打印结果。
6、在jQuery3.0以下版本中,可以使用delegate()方法绑定点击事件。
7、除了上述之外,还有live()方法,不过这个方法jQuery1.7后就被废弃了。
可以用事件委托,jquery提供on()方法(jquery 1.7.0 以上版本)来委托绑定事件:
<ul class="list"><li><a href="javascript:">导航1</a></li>
<li><a href="javascript:">导航2</a></li>
</ul> $('.list').find('a').on('click', function(){
$(this).addClass('active').siblings().removeClass('active')
})
这样.list里通过js动态创建的a节点也能响应click事件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)