JS delegate與live淺析
在jquery里有兩個(gè)方法可以用來綁定自動(dòng)追加出來的DOM對(duì)象,它們是live和delegate,事實(shí)上,這兩個(gè)方法是bind方法的一個(gè)變體,在對(duì)于固定DOM對(duì)象時(shí),我們通常使用bind就可以了,而對(duì)象動(dòng)態(tài)產(chǎn)生的DOM對(duì)象,使用bind就無能為力了,這時(shí)live和delegate就出場(chǎng)了,呵呵。
live方法,用來綁定某個(gè)(某類)對(duì)象,為它們綁定方法
//live
$("td").live("click", function () {
alert($(this).html());
});
//下面也是可以的 $("#list td").live("click", function () {
alert($(this).html());
});
delegate方法,用來綁定某個(gè)(某類)對(duì)象下的子對(duì)象,為子對(duì)象綁定方法(委托子對(duì)象,讓子對(duì)象有某種方法,呵呵)
$("#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="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是指分別用于指定區(qū)分大小寫的匹配、全局匹配和多行匹配。
$(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>
相關(guān)文章
javascript實(shí)現(xiàn)一個(gè)簡(jiǎn)單的彈出窗
本文給大家分享的是使用javascript實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的彈出窗的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下2016-02-02怎樣用JavaScript實(shí)現(xiàn)原型模式
這篇文章主要介紹了怎樣用JavaScript實(shí)現(xiàn)原型模式,想學(xué)習(xí)設(shè)計(jì)模式的同學(xué),可以參考下2021-04-04那些項(xiàng)目中常見的TypeScript錯(cuò)誤總結(jié)
這篇文章主要給大家總結(jié)介紹了一些項(xiàng)目中常見的TypeScript錯(cuò)誤的相關(guān)資料,如果你想查看所有的錯(cuò)誤信息和錯(cuò)誤碼,可以瀏覽TypeScript的源代碼倉庫,當(dāng)然隨著?ts?版本的更新,官網(wǎng)也會(huì)逐漸增加更多新的類型錯(cuò)誤,需要的朋友可以參考下2022-03-03js onmousewheel事件多次觸發(fā)問題解決方法
做一個(gè)首屏和第二屏之間滾動(dòng)鼠標(biāo)滾輪就可以整平切換的效果,遇到了很多問題,下面是問題解決方法2014-10-10同時(shí)使用n個(gè)window onload加載實(shí)例介紹
window onload加載多個(gè)同時(shí)使用,想必有很多人沒有用過吧,接下來為大家詳細(xì)介紹下具體的使用方法,感興趣的朋友可以參考下2013-04-04微信小程序 連續(xù)旋轉(zhuǎn)動(dòng)畫(this.animation.rotate)詳解
這篇文章主要介紹了微信小程序 連續(xù)旋轉(zhuǎn)動(dòng)畫(this.animation.rotate)詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04JS基于開關(guān)思想實(shí)現(xiàn)的數(shù)組去重功能【案例】
這篇文章主要介紹了JS基于開關(guān)思想實(shí)現(xiàn)的數(shù)組去重功能,簡(jiǎn)單分析了開關(guān)思想的原理,并結(jié)合具體實(shí)例形式分析了javascript基于開關(guān)思想實(shí)現(xiàn)數(shù)組去重相關(guān)操作技巧,需要的朋友可以參考下2019-02-02