JS异步加载,JQ事件不被执行解决方法

Posted 叶丶梓轩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS异步加载,JQ事件不被执行解决方法相关的知识,希望对你有一定的参考价值。

一,在我们实现动态生成html代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="jquery-1.11.1.js"></script>
    <script>
        $(function () {
            $("#demo").delegate(.t1, click, function () {
                alert("t1");
            });
            $("#demo").delegate(#t2, click, function () {
                alert("t2");
            });
            $("#demo").delegate(.t3, click, function () {
                alert("t3");
            });
            $("#demo").delegate(#t4, click, function () {
                alert("t4");
            });
            Test();
        });
        function Test() {
            var strHtml = "<div class=‘t1‘>t1</div>";
            strHtml += "<div id=‘t2‘>t2</div>";
            strHtml += "<div class=‘t3‘>t3</div>";
            strHtml += "<div id=‘t4‘>t4</div>";
            $("#demo").html(strHtml);
        }
    </script>
</head>
<body>
    <div id="demo">
    </div>
    <div id="demo1">
    </div>
</body>
</html>

 二,经过以上测试,得出

1》使用class和id触发的写法是一样的

2》JS动态添加的HTML并不需要在绑定事件的节点内,一样可以触发成功

以上是关于JS异步加载,JQ事件不被执行解决方法的主要内容,如果未能解决你的问题,请参考以下文章

jQuery异步加载数据并添加事件示例

jq-outerhtml不能执行新元素内部的js解决方案

动态加载js文件

深入理解Node.js基于事件驱动的回调

javascript事件环(EventLoop)

js或jq怎么实现滚轮控制页面上下滑动