当前位置: 首页 > 面试题库 >

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

龚国源
2023-03-14
问题内容

下面的代码有效。如果有更好的方法,请告诉我。如果我使用通过ajax加载test.html的主页中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>

Test.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>

Test.html:

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

问题答案:

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

您的代码应与此类似:

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

它不必是body,但是是准备好文档后不会加载的元素,它是 .heading 的父



 类似资料:
  • 问题内容: 我在用 单击到容器上的按钮,但随后进行了ajax调用,并且内容使用新内容进行了更新,然后当我尝试单击它时将无法工作…单击该按钮时,将不会返回任何内容。 我什至试过 要么 我该如何运作? 编辑: 我的HTML: 问题答案: 应该以这种方式完成。 如果您的容器在ajax请求期间没有更改,则性能更高: 始终将委托事件绑定到将包含动态元素的最接近的静态元素。

  • 问题内容: 我正在将多页php + jquery网站转换为单页角度应用程序。但是我已经用jquery编写了很多代码,因此只打算将php换成与路由等有关的角度。 我遇到的一个我无法弄清楚的问题是,在转换停止工作之前,我一直用尽的jquery click事件。如果更改代码以使其通过ng- click触发,则它将起作用,即使我从控制台调用该函数也是如此。jQuery正常工作,我在提到的函数中放了一些jQ

  • 问题内容: 我本周刚开始使用AngularJS进行一个新项目,所以我必须尽快加快速度。 我的要求之一是动态添加html内容,并且该内容可能带有click事件。 因此,我在下面的代码Angular代码中显示了一个按钮,当单击该按钮时,它会动态添加另一个按钮。单击动态添加的按钮,应该添加另一个按钮,但是我无法让ng- click来处理动态添加的按钮 工作代码示例在此处 http://plnkr.co/

  • 问题内容: 我的问题: 我有index.html: 是这样的: 问题很简单。 当我按下按钮时,我想动态加载内容,而无需刷新。 提前致谢!请发表评论以进行任何必要的澄清。 编辑,更详细的解释: 我不确定自己是否很清楚(或者我可能不了解我缺乏技术技能的答案),所以我再说一遍。(改写) 我有一个带有提交按钮的HTML,该按钮通过POST方法发送变量。 PHP文件使用此变量,并在经过一定过程后插入并更新M

  • 问题内容: 关闭页面时,我使用此代码注销用户,但是单击其他链接(相同的网站)时,用户也会注销: 有什么方法可以区分链接导航和实际页面关闭吗? 编辑: 我目前已实现此解决方案,但是它缺乏检测页面重新加载的能力 问题答案: 尝试以下解决方案,希望对您有所帮助 要么

  • 问题内容: 请帮我解决我的问题!我使用了CouchDB,并且使用了jquery.couch.js与CouchDB服务器(http://daleharvey.github.com/jquery.couch.js- docs/symbols/index.html )进行通信,但这没用( (该脚本的开头: 返回错误: 我认为,这意味着服务器将我的请求视为对远程服务器的请求,但我不知道要纠正它。请帮助我,