Jquery事件不能处理ajax加载的内容

前端之家收集整理的这篇文章主要介绍了Jquery事件不能处理ajax加载的内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下代码工作.如果有更好的方法请让我知道.
如果我使用主页中test.html中出现的脚本内容,我正在加载test.html通过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');
            });            
        });
    </script>
</html>

的test.html:

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

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

我们必须通过ajax来加载脚本以及动态加载的内容,以满足您的需求.但是,我感到是每次我们发送一个jax请求脚本一直加载内容.但是我发现只有这个解决方案.如果有人知道更好的解决方案请回复.

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

<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','red');  
            });                                   
        });
    </script>
</html>

的test.html:

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

解决方法

这是因为您将事件绑定到文档准备就绪.您必须使用代理才能使其正常工作.像 on.这是因为.header不是在页面上的页面加载时.所以没有事件被附加.

你的代码应该是这样的:

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

它不必是身体,而是一个在文档准备好之后没有加载的元素,它是.heading的父类.

猜你在找的jQuery相关文章