当前位置 : 主页 > 网页制作 > JQuery >

Jquery .load() – 如何从加载的内容中执行原始文档中的Javascript

来源:互联网 收集:自由互联 发布时间:2021-06-15
我有一个文档,使用 JQuery的.load()函数将一些内容加载到div中.加载的内容然后尝试从原始文档执行 Javascript.这可能是因为显而易见的原因(我是Javascript新手)失败了.这是简化的代码,说明了
我有一个文档,使用 JQuery的.load()函数将一些内容加载到div中.加载的内容然后尝试从原始文档执行 Javascript.这可能是因为显而易见的原因(我是Javascript新手)失败了.这是简化的代码,说明了我的问题.

的test.html:

<html>
<head>
    <script src="http://img.558idc.com/uploadfile/allimg/210615/2045304522-0.jpg"></script>
    <style type="text/css">
    div {
        background: #ccc;
        margin: 15px;
        height: 500px;
        width: 500px;
        border: 1px solid #666;
    }
    </style>
</head>
<body>
    <a href="#" class="loader">Load content into box below</a>
    <div id="loadbox"></div>
    <script type="text/javascript"> 

        jQuery(document).ready(function() { 

            $('a.loader').click(function() {
                $('#loadbox').load('loadme.html');
            });

            $('a.alerter').click(function() {
                alert("I've been clicked!");
            });

        });
    </script>
</body>
</html>

loadme.html:

<a href="#" class="alerter">Click me</a> for an alert.

如果我将Javascript放在加载的内容中,则会触发警报,但是我有一大块Javascript,我想使用多个div加载内容,我不想继续加载Javascript.有没有办法从加载的内容中访问原始HTML中的Javascript?我并不完全了解处理内容的顺序,特别是当我将内容加载到页面中时.也许这是我学习的机会!谢谢.

你应该使用 live()或 delegate(),因为你要在文档中添加一个元素(这是针对jQuery< 1.7)

jQuery(document).ready(function() { 

        $('a.loader').click(function() {
            $('#loadbox').load('loadme.html');
        });

        $('a.alerter').live("click", function() {
            alert("I've been clicked!");
        });

    });

对于jQuery> 1.7你应该使用on()并将处理程序委托给正文

jQuery(document).ready(function() { 

        $('a.loader').click(function() {
            $('#loadbox').load('loadme.html');
        });

        $('body').on("click", "a.alerter", function() {
            alert("I've been clicked!");
        });

    });
网友评论