【问题标题】:Script goes ghost when dynamic content is loaded加载动态内容时脚本变为幻影
【发布时间】:2009-09-02 12:01:58
【问题描述】:

加载一个 PHP 模板后(使用 jQuery 的加载函数),这个简单的脚本不会让 DIV 消失:

$("#trigger").click(function(event){
$("#removeThisDIV").hide();

HTML 位:

<p id="trigger">X</p>

在加载之前尝试删除其他 DIV——它工作得很好。加载后,脚本死了。想法?

谢谢。

【问题讨论】:

    标签: jquery scripting load


    【解决方案1】:

    live 使用事件委托,因为在您调用$.load 之后,新注入的元素将不会绑定click 事件处理程序:

    $("#trigger").live("click",function(event){
        $("#removeThisDIV").hide();
    });
    

    或者,使用 $.load 的回调:

    $('#blah').load('some.html', function() {
        $("#trigger").click(function() {
            $("#removeThisDIV").hide();
        });
    });
    

    要使live 工作,您需要使用 jQuery 1.3 或更高版本。希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      正如 karim79 所提到的,当您分配 click 函数时,要用作触发器的 div 不是 DOM 的一部分,因此它没有所需的功能。当然,你可以简单地将js放在PHP模板本身中;

      <p id="trigger" onclick="$('#removeThisDIV').hide();">X</p>
      

      请确保在此元素上方包含 jquery,否则会引发“$ not recognised”错误。

      【讨论】:

      • 我宁愿从脚本文件中处理这些函数,但感谢您的努力和关注。
      猜你喜欢
      • 2013-06-29
      • 2014-11-01
      • 2011-11-09
      • 1970-01-01
      • 2018-05-02
      • 2013-01-02
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多