JS~delegate与live
在jquery里有两个方法可以用来绑定自动追加出来的DOM对象,它们是live和delegate,事实上,这两个方法是bind方法的一个变体,在对于固定DOM对象时,我们通常使用bind就可以了,而对象动态产生的DOM对象,使用bind就无能为力了,这时live和delegate就出场了,呵呵。
live方法,用来绑定某个(某类)对象,为它们绑定方法
//live $("td").live("click", function () { alert($(this).html()); });
//下面也是可以的
$("#list td").live("click", function () {
alert($(this).html());
});
delegate方法,用来绑定某个(某类)对象下的子对象,为子对象绑定方法(委托子对象,让子对象有某种方法,呵呵)
$("#list").delegate("td", "click", function () { alert($(this).html()); });
下面的DEMO的完成代码:
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <script src="http://common.cnblogs.com/script/jquery.js" type="text/javascript"></script> <script id="listTemplate" type="text/html"> <tr> <td>[UserID]</td> <td>[UserImg]</td> <td>[UserName]</td> </tr> </script> <script type="text/javascript"> var reg = new RegExp("\\[([^\\[\\]]*?)\\]", 'igm'); //i g m是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。 $(function () { //live $("#list td").live("click", function () { alert($(this).html()); }); $("#addFun").click(function () { var html = document.getElementById("listTemplate").innerHTML; var source = html.replace(reg, function (node, key) { return { 'UserImg': '1', 'UserName': 'zhang', 'UserID': '1' }[key]; }); $("#list").append(source); }); }); </script> </head> <body> <div id="comment_ul_2"> </div> <input type="button" id="addFun" value="click me" /> <table id="list" border="1"> <tbody> </tbody> </table> </body> </html>
分类:
前端技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2011-12-21 MVC中的统一验证机制~终极了(自己的改良版)