【发布时间】:2009-09-02 12:01:58
【问题描述】:
加载一个 PHP 模板后(使用 jQuery 的加载函数),这个简单的脚本不会让 DIV 消失:
$("#trigger").click(function(event){
$("#removeThisDIV").hide();
HTML 位:
<p id="trigger">X</p>
在加载之前尝试删除其他 DIV——它工作得很好。加载后,脚本死了。想法?
谢谢。
【问题讨论】:
加载一个 PHP 模板后(使用 jQuery 的加载函数),这个简单的脚本不会让 DIV 消失:
$("#trigger").click(function(event){
$("#removeThisDIV").hide();
HTML 位:
<p id="trigger">X</p>
在加载之前尝试删除其他 DIV——它工作得很好。加载后,脚本死了。想法?
谢谢。
【问题讨论】:
对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 或更高版本。希望对您有所帮助。
【讨论】:
正如 karim79 所提到的,当您分配 click 函数时,要用作触发器的 div 不是 DOM 的一部分,因此它没有所需的功能。当然,你可以简单地将js放在PHP模板本身中;
<p id="trigger" onclick="$('#removeThisDIV').hide();">X</p>
请确保在此元素上方包含 jquery,否则会引发“$ not recognised”错误。
【讨论】: