JS delegate与live浅析

前端技术 2023/09/07 JavaScript

在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>

本文地址:https://www.stayed.cn/item/18333

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。