不理解b选择,麻烦解答,谢谢
来源:4-9 选择练习
qq_慕移动3101913
2020-03-23 18:18:10
live()是通过冒泡的方式来绑定到元素上的, 可以在document.ready( )之前就可以绑定其它需要的事件
live()不是这可以绑定到 document 上吗?
document 事件
* body
* div
* div
* div
* .
* .
* .
* ul
* li
*
* live把事件绑在document,利用事件冒泡的方式,就叫做事件委托或代理
难道可以绑定到 div上?
不是只有 delegate 才可以随意绑定到某个元素上吗?谢谢
2回答
好帮手慕慕子
2020-03-24
同学你好,在live()和delegate()之间,都是利用事件冒泡实现事件委托效果,唯一的差别就在于它们在对要绑定事件的元素的获取速度上有差异。在事件传播上,后者要比前者的速度更快一点,只因后者的限制条件更精准一些。
这可以从它们的绑定事件的结构来看出来,示例:
$('a').live('click', function() { blah() }); // 或者 $(document).delegate('a', 'click', function() { blah() });
因为前者首先要扫描整个的文档查找所有的$(‘a’)元素,把它们存成jQuery对象。尽管live函数仅需要把’a’作为串参数传递以用做之后的判断,但是$()函数并未“知道”被链接的方法将会是.live()。而delegate方法仅需要查找并存储$(document)元素,所以后者实际上要快过前者,
这两个方法在实际开发中几乎不会使用到,且live方法在jQuery1.7版本之后已经被移出了 ,同学简单了解下就可以了,祝学习愉快~
好帮手慕慕子
2020-03-23
同学你好,可以给任意元素通过live绑定事件。
如下所示写法,可以理解为虽然写法是给li绑定的点击事件,但是在使用live方法时,会自动给document绑定一次点击事件。
live和delegate都可以给任意元素绑定事件
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题