不理解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版本之后已经被移出了 ,同学简单了解下就可以了,祝学习愉快~

0
hq_慕移动3101913
h 谢谢。。。。。
h020-03-24
共1条回复

好帮手慕慕子

2020-03-23

同学你好,可以给任意元素通过live绑定事件。

如下所示写法,可以理解为虽然写法是给li绑定的点击事件,但是在使用live方法时,会自动给document绑定一次点击事件。

http://img.mukewang.com/climg/5e7893a709b2403014460664.jpg

live和delegate都可以给任意元素绑定事件

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0
hq_慕移动3101913
h 老师,没理解你说的意思,那live和delegate的区别是?
h020-03-23
共1条回复

0 学习 · 6815 问题

查看课程