作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好需要一点帮助..
我知道 .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):
$(".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/
我是一名优秀的程序员,十分优秀!