萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> JS delegate與live淺析

JS delegate與live淺析

 這篇文章主要介紹了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="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>  
copyright © 萬盛學電腦網 all rights reserved