div中的Jquery动作用load()控制另一个

时间:2009-09-09 21:09:02

标签: jquery load append

我有一个索引页index.php,当用户点击一个项目时(为了这个问题,假设该项目包含在名为aeffect.html的html页面中),它会加载aeffect.html成为div:

<div id="popupContainer"></div>

包含在index.php上。

但是,index.php上有很多项目,每个项目都有一个关闭按钮。我尝试使用此变量清空popupContainer,希望它将其重置为空,aeffect.html会消失。

//Close property
$("a.close").click(function(){
    $("#popupContainer").empty();
});

这似乎不起作用,我不确定如何使这项工作。有没有办法让aeffect.html的行动能够控制index.php上的div?

这是完整的jquery:

$(document).ready(function() {
//Find & Open
$(".projectThumb").click(function(){
        $("#popupContainer").load("/aeffect.html");
            });

//Close property
$("a.close").click(function(){
    $("#popupContainer").empty();
        });
});

这是index.php

的html
<div id="container">
    <div class="projectThumb">
    <img src="/img/aeffect_button_static.gif" width="146" height="199" class="button" name="aeffect" alt="" />
    <p class="title">A.EFFECT: Film Poster</p>
    </div>
</div>
<div id="popupContainer"></div>

和aeffect.html的html

<div class="projectPopup" id="aeffect">
    <a class="close">Close &times;</a>
    <img src="/img/aeffect_popup.jpg" width="500" height="729" alt="" />
    <p class="description">Description</p>
</div>

1 个答案:

答案 0 :(得分:3)

$('a.close').click()加载时,a.close处理程序将添加到所有index.php元素。这意味着加载内容中的a.close没有附加处理程序。

在加载新内容后附加处理程序,或改为使用$('a.close').live('click', ...)