克隆div.Bind()后无法关闭弹出窗口?JQUERY



克隆名为.popup的div,然后单击旨在关闭.popup的名为#close的跨度后,如何激活单击事件?

点击它目前没有任何作用。我知道div是在页面初始化后创建的,我只需要知道如何将其绑定到页面上,以便在点击时识别它。

JavaScript:

$('span#close').click(function () {
            $('.popup').fadeOut(1000);
        });

HTML:

<div class="popup">
    <span id="close">Close</span>
    <!-- content -->
</div>

尝试:


$("span#close").on("click", function(){
   $('.popup').fadeOut(1000);
});

您可能正在查找jQuery公开的on()事件-您可以使用live(),但现在强烈反对使用这种方法。

所以,类似于:

$('span#close').on('click', function(e) { });

克隆时需要复制事件。看这篇好文章。还要记住,ID属性在文档中必须是唯一的。所以在克隆元素之后,请确保并没有id相等的重复元素。

感谢大家的建议,.on()处理程序,我不知道为什么,所以我决定使用@faino的建议。

我在html中创建了包含div,并将其属性设置为display:none,该div还包含用于关闭弹出窗口的span#close

当一个项被克隆时,它被附加到包含div的项中,当我单击span#close时,它删除了克隆的项,并将包含div的属性设置回display:none

这样,span#close就不会被克隆,也不需要再次暴露事件。

再次感谢您的回答!

最新更新