码迷,mamicode.com
首页 > 其他好文 > 详细

知识点3

时间:2016-11-18 11:54:21      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:事件绑定   个数   move   知识点   bind   uid   after   parent   为什么   

1、事件冒泡,阻止事件冒泡

2、Jquery:append()、prepend()、remove()、each():选择器选择集合、$(this).parent()...

3、
所有的事件绑定(.click, .mouseover, .hover 等等)都是委托给更底层的 .on 方法的,通过查看其源码得知 .on 最终会调用 $.event.add 方法

我没有细细去看 $.event 对象的全部内容,只是看到这一行的时候,我似乎有些明悟了。

jQuery 为每一个事件回调函数生成一个 guid,保证它们都是独一无二的(即使函数内容相同)

如果你继续往后看,会发现这些回调函数都被 push 到一个数组里保存,所以当事件触发的时候,它们也应该是一个个从数组里取出来再执行(或许是为了保证注册在同一事件下不同回调函数的执行顺序,但是像你这样内容一样的回调函数就不好判断了,所以如果你不得不多次绑定内容一样的回调,先解绑)。这就是为什么会产生你问题中效果的原因。

至于 jQuery 为什么要这样去设计我还没有去求证,我猜是为了更强大的事件管理能力,至于 bind after unbind 这样的副作用也许在 jQuery Team 看来是微不足道的牺牲吧。

知识点3

标签:事件绑定   个数   move   知识点   bind   uid   after   parent   为什么   

原文地址:http://www.cnblogs.com/zmdblogs/p/6076978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!