zl程序教程

您现在的位置是:首页 >  其它

当前栏目

JSdelegate与live浅析

浅析 Live
2023-06-13 09:15:14 时间

在jquery里有两个方法可以用来绑定自动追加出来的DOM对象,它们是live和delegate,事实上,这两个方法是bind方法的一个变体,在对于固定DOM对象时,我们通常使用bind就可以了,而对象动态产生的DOM对象,使用bind就无能为力了,这时live和delegate就出场了,呵呵。

live方法,用来绑定某个(某类)对象,为它们绑定方法

复制代码代码如下:


       //live
           $("td").live("click",function(){
               alert($(this).html());
           });
          //下面也是可以的          $("#listtd").live("click",function(){
                alert($(this).html());
          });

delegate方法,用来绑定某个(某类)对象下的子对象,为子对象绑定方法(委托子对象,让子对象有某种方法,呵呵)

复制代码代码如下:


 $("#list").delegate("td","click",function(){
               alert($(this).html());
           });

下面的DEMO的完成代码:

复制代码代码如下:
<htmllang="en"xmlns="http://www.w3.org/1999/xhtml">
<head>
   <metacharset="utf-8"/>
   <title></title>
   <scriptsrc="jquery.js"type="text/javascript"></script>
   <scriptid="listTemplate"type="text/html">
       <tr>
           <td>[UserID]</td>
           <td>[UserImg]</td>
           <td>[UserName]</td>
       </tr>
   </script>
   <scripttype="text/javascript">
       varreg=newRegExp("\\[([^\\[\\]]*?)\\]","igm");//igm是指分别用于指定区分大小写的匹配、全局匹配和多行匹配。

       $(function(){
           //live
           $("#listtd").live("click",function(){
               alert($(this).html());
           });

           $("#addFun").click(function(){
               varhtml=document.getElementById("listTemplate").innerHTML;
               varsource=html.replace(reg,function(node,key){return{"UserImg":"1","UserName":"zhang","UserID":"1"}[key];});
               $("#list").append(source);
           });

       });
   </script>
</head>
<body>
   <divid="comment_ul_2">
   </div>
   <inputtype="button"id="addFun"value="clickme"/>
   <tableid="list"border="1">
       <tbody>
       </tbody>
   </table>
</body>
</html>