加载动态内容时,脚本会变鬼

时间:2009-09-02 12:01:58

标签: jquery scripting load

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

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

HTML位:

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

将事件委派与live一起使用,因为在您调用$.load后,新注入的元素将不会绑定点击事件处理程序:

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

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

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

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

答案 1 :(得分:1)

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

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

确保在此元素上方包含jquery,否则它将抛出“$ not recognized”错误。