关于jQuery中live的一点记录

事件委托
.live()方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。

传递给 .live()的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM树的根节点上。当点击新的元素后,会依次发生下列步骤:

1、生成一个click事件传递给<div> 来处理
2、由于没有事件处理函数直接绑定在 <div>上,所以事件冒泡到DOM树上
3、事件不断冒泡一直到DOM树的根节点,默认情况下上面绑定了这个特殊的事件处理函数。
4、执行由 .live() 绑定的特殊的click 事件处理函数。
5、这个事件处理函数首先检测事件对象的target 来确定是不是需要继续。这个测试是通过检测 $(event.target).closest('.clickme')能否找到匹配的元素来实现的。
6、如果找到了匹配的元素,那么调用原始的事件处理函数。
由于只有在事件发生时才会在上面的第五步里做测试,因此在任何时候添加的元素都能够响应这个事件。

描述: 阻止默认事件行为和事件冒泡,返回false

jQuery代码:   
$("a").live("click", function() {
    return false; 
});

描述: 仅仅阻止默认事件行为

jQuery 代码:
$("a").live("click", function(event){
    event.preventDefault();
 });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 5,222评论 0 8
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 5,248评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 4,925评论 0 1
  • 是的,这个世界上的大部分都终将是平凡的人,生于平凡、长于平凡、终死于平凡,想一想这个事实是多么悲伤,短短百年,可做...
    jesseliu阅读 1,396评论 0 0
  • 随他同行的三个人,在中途死了。“他们走不动了,当发生时,我们会去鼓励他们,但是没一会你就得放弃他们,因为你掉队的话...
    野生的萱阅读 2,206评论 0 0

友情链接更多精彩内容