gpt4 book ai didi

javascript - $ (".box a").live ("click"怎么修改

转载 作者:行者123 更新时间:2023-11-30 10:25:08 25 4
gpt4 key购买 nike

大家好需要一点帮助..

我知道 .live 在 jQuery v1.9 中不再工作是否有任何替代方法可以让我的下面的函数恢复工作我尝试 .on().bind() 但没有成功。这是 fiddle

HTML

<div id="container">
<p>There are 0 boxes</p>
<a href="#" class="more">Add more +</a>
</div>

jQuery

$(".more").click(function() {
$("#container").append("<div class='box'><a href='#'>x</a></div>");
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count>2){
$(".more").hide();
}

});

$(".box a").live("click", function() {
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{$(".more").show();}
});

最佳答案

对动态添加的元素使用事件委托(delegate):

http://jsfiddle.net/89wTX/11/

$(".more").on('click', function() {
$("#container").append("<div class='box'><a href='#'>x</a></div>");
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count>2){
$(".more").hide();
}

});

$("#container").on("click", '.box a', function() {
$(this).parent().remove();
var count = $(".box").length;
$("p").text("There are " + count + " boxes.");
if(count<3)
{$(".more").show();}
});

当你只是在没有委托(delegate)的情况下使用它时,它会将监听器附加到现有元素上一次。当您添加新元素(在您的案例中为框)时,它们没有附加任何监听器。

关于javascript - $ (".box a").live ("click"怎么修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19946959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com