`

十六、live和事件委派

 
阅读更多

$(".ccc").live("click",function(event){
    alert($(this).html());
});
/*
 *  使用了Live事件之后,就有效解决了新元素无法绑定的问题
 *  live事件存在的原理是通过事件委托的方式
 *  事件委托是通过冒泡机制实现的
 */
$("#content").append("<div class='ccc'>bbbbb</div>");

 

实现事件委派

//closest就是向上找,如果自己满足就返回,如果自己不满足,继续向上走
//$("#ll").closest("ul").css("color","#ff0");
//由于closest可以从自己找,所以closet非常适合做事件委派
//$("#ll").closest("li").css("color","#ff0");

/*
 * 事件委托的原理
 * 此时每一个事件只要被点击到,他都会冒泡到document去
 * 所以以下事件会被处理
 * 在处理时,判断一下该事件是否是我要处理的对象就可以了
 *
 */
$("#content").bind("click",function(event){
    var obj = $(event.target).closest(".ccc");
    if((obj[0])==event.target) {
        alert("abc");
    }
});
/*
 * 对于live而言就是使用事件委派的方式,但是使用这个方式会带来如下问题
 * 1、每个事件都会冒泡到document上面去,开销变大
 * 2、使用Live不支持一些特殊的事件
 * 对于live方法而已,它提供了第二参数来说明绑定的上下文
 */
$("#content").append("<div class='ccc'>bbbbb</div>");
$("#abc").append("<div class='ccc'>bbbbb</div>");

 

 

//第二个参数可以指定相应的上下文,说明事件委派的根对象是什么
//但是以下写法很难看,所以jquery在1.3之后提供delegate的方法来替代
$(".ccc","#content").live("click",function(event){
    alert($(this).html());
});

 

分享到:
评论

相关推荐

    jQuery live( type, fn ) 委派事件实现

    这个方法跟传统的bind很像,区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说,如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时,...

    RIA应用开发:5-jQuery事件处理.ppt

    3. **事件委派(live()、die())**:`live()`和`die()`方法用于处理动态添加到DOM的元素的事件,它们在jQuery 1.7之后被`on()`和`off()`取代。事件委派提高了性能,因为事件只需要绑定到一个高层级的祖先元素,而...

    初窥JQuery(二) 事件机制(1)

    本文将深入探讨jQuery中的事件机制,主要包括页面加载、事件绑定、事件委派和事件切换四个部分。 首先,我们来看页面加载事件。在jQuery中,`$(document).ready()`是一个至关重要的事件,它会在HTML文档加载完成后...

    RIA应用开发:6-jQuery动画效果.ppt

    `bind()` 用于绑定事件处理程序,`unbind()` 取消绑定,`one()` 只执行一次的事件绑定,`live()` 和 `die()` 用于事件委派,特别是处理动态添加到DOM的元素的事件。 jQuery 还提供了一系列的事件处理方法,包括基本...

    jqery学习笔记

    - **3.3.2 事件委派**:`on('event', 'selector', function() {...})`支持事件委托,当事件在匹配的后代元素上触发时,处理函数会被调用。 4. **动画和效果**:jQuery的`animate()`, `fadeIn()`, `fadeOut()`, `...

    jquery常用函数与方法汇总

    2. jQuery委派事件:live() live()函数是jQuery1.3版本新增的,它允许开发者为当前及未来所有匹配特定选择器的元素绑定事件处理函数,而无需对每个元素单独绑定。它支持的事件类型有:click, dblclick, mousedown, ...

    小金库(自己整理的面试中遇到的问题).rar

    5. Redis缓存策略:TTL(Time To Live)和LRU(Least Recently Used)等淘汰策略。 其次,Java.txt可能涵盖Java语言基础和进阶内容: 1. Java内存模型:理解堆、栈、方法区等区域,以及垃圾回收机制。 2. 异常处理...

    JQuery学习笔记(技术文档)

    事件委派 - `live(type, fn)`(已被废弃,建议使用 `on` 方法) - `type`:要绑定的事件类型。 - `fn`:要执行的函数。 示例代码: ```javascript $("body").live("click", "#id", function(){ alert(...

    Virtual Machine Manager 2008 R2 in Private Cloud

    VMM 2008 R2 提供了一系列先进的功能来满足关键的虚拟化需求,包括高效的虚拟机配置、日常运维操作的简化、性能和资源优化、以及委派管理权限和支持自助服务等。 #### 关键虚拟化关注点 - **高效虚拟机配置**: VMM...

    Jquery 1.3 简体中文手册

    事件委派 live(type, fn) die([type], [fn]) 事件切换 hover(over, out) toggle(fn, fn2, [fn3, fn4, ...]) 事件 blur( [fn] ) change( [fn] ) click( [fn] ) dblclick( [fn] ) error( [fn] ) focus( [fn] ...

    JQuery 1.3 中文参考手册

    事件委派 live(type, fn) die([type], [fn]) 事件切换 hover(over, out) toggle(fn, fn2, [fn3, fn4, ...]) 事件 blur( [fn] ) change( [fn] ) click( [fn] ) dblclick( [fn] ) error( [fn] ) focus( [fn] ...

    jQuery1.4 API

    unbind([type], [data]) 事件委派 live(type, [data], fn) die([type], [fn]) 事件切换 hover(over, out) toggle(fn, fn2, [fn3, fn4, ...]) 事件 blur( [fn] ) change( [fn] ) click( [fn] ) dblclick( [fn] ) ...

    独孤九剑-------面试题

    + TTL(Time To Live) + SETEX 命令 * Redis 的缓存雪崩、缓存击穿、缓存穿透: + 缓存雪崩:大量缓存同时失效 + 缓存击穿:缓存中没有数据,导致数据库压力增加 + 缓存穿透:缓存中没有数据,导致缓存服务器...

    高考英语 选修7 第一单元总复习精品学案 外研版 学案.doc

    - **in the history of** (在……历史上): 用于描述在特定历史时期发生的事件。例如: China has a rich history in inventions. - **an average of** (平均为……): 用于计算平均数。例如: The students scored ...

    delegation-wizard:申请准备波兰雇员的授权文件

    委派向导 该应用程序可帮助编写带有“委托摘要”的文档,如果您一年中有多次出国旅行并且您是在波兰注册的员工,则此功能非常有用。 此应用程序进行的计算基于波兰法律,但请务必仔细检查金额和适当的法律法规,...

    协议:Livepeer协议

    绑定和委派LPT以选举现役工人 向积极参与者分配通胀奖励和费用 协议中的时间进度 ETH代管和票证验证,用于支付转码工作费用的概率性小额支付协议 文献资料 有关该协议的一般概述,请参见: 原始提案的 有关...

Global site tag (gtag.js) - Google Analytics