Jquery 事件不适用于 ajax 加载的内容

标签 jquery ajax

下面的代码有效。如果有更好的方法请告诉我。 如果我使用主页中 test.html 中存在的脚本内容,我将通过 ajax 加载 test.html。该脚本不起作用。

<html> 
    <head>
        <script src='jquerylocation' type='text/javascript'></script>
    </head>
    <body>
        <div id='ajaxload'></div>
        <button class='test'>load content via ajax</button>
    </body>


    <script>
        $(function(){
            $('.test').on('click',function(){
                  $('#ajaxload').load('test.html');
            });            
        });
    </script>
</html>

测试.html:

    <h1 class='heading'>Page via AJAX</h1>

    <script>
        $(function(){
            $('.heading').on('click',function(){
                $(this).css('color','red');  
            });                          
        });
    </script>

我们必须通过ajax加载脚本以及动态加载的内容才能按照您的要求工作。但我觉得缺点是每次我们发送ajax请求时脚本都会与内容一起加载。但我只找到了这个解决方案。如果有人知道更好的解决方案,请回复。

例如,如果以这种方式更改代码,它将无法工作。

<html> 
    <head>
        <script src='jquerylocation' type='text/javascript'></script>
    </head>
    <body>
        <div id='ajaxload'></div>
        <button class='test'>load content via ajax</button>
    </body>


    <script>
        $(function(){
            $('.test').on('click',function(){
                  $('#ajaxload').load('test.html');
            });

            $('.heading').on('click',function(){
                $(this).css('color','red');  
            });                                   
        });
    </script>
</html>

测试.html:

    <h1 class='heading'>Page via AJAX</h1>

最佳答案

这是因为您正在将事件绑定(bind)到文档准备就绪。您必须使用委托(delegate)才能使其工作。喜欢on 。这是因为 .header 加载时不在页面上。因此没有附加任何事件。

你的代码应该看起来像这样:

$('body').on('click','.heading',function(){
     $(this).css('color','red');  
});   

它不一定是正文,而是文档准备好后不加载的元素,它是 .heading 的父元素。

关于Jquery 事件不适用于 ajax 加载的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620211/

相关文章:

javascript - 我该怎么做才能避免同步 AJAX 请求

javascript - 为什么这个函数在页面加载时没有预期的行为?

javascript - jQuery UI 可排序和可拖动问题

javascript - 使用 Ajax 将 JS 对象发送到 C# Controller

javascript - 使用ajaxFileUpload时出现[object%20Object]错误

javascript - https 导致立即中止,而 http 正常

javascript - 如何在没有唯一 ID/类的情况下淡出功能

javascript - Flask 模板中的动态 HTML 转义

c# - Ajax 调用在 mvc 4 中不起作用

jquery - 我可以在没有回调的情况下使用 jquery getScript() 吗?