为什么hide()表现不同?

时间:2016-08-24 11:11:19

标签: jquery

我想通过点击它们(逐个)删除元素。我几乎完成了,但遇到了一些问题。

我写这段代码,这个工作很好。但这仅适用于slide()css()。这两个示例仅对我单击的元素有效。

$("#button").click(function(){
    var k = $("<p></p>").text("paragraph");
    $("#content").append(k);
});

$("#content").on("click","*",function(){
    $(this).slideToggle();
});

https://jsfiddle.net/k61Lb684/

https://jsfiddle.net/k61Lb684/1/

但问题是我想删除元素但是当我尝试使用相同的方法remove()hide()时,它只隐藏了底部元素。

https://jsfiddle.net/k61Lb684/2/

https://jsfiddle.net/k61Lb684/3/

有人可以解释为什么hide()remove()的行为不同。并为我的问题提供更好的解决方案?

1 个答案:

答案 0 :(得分:4)

hideremove的工作方式相同。但默认情况下两者都没有animation时间。所以两者都是如此之快,以至于可见,最后一行将被删除。但事实是,底部元素会滑动到列表中的新空白区域。

在为动画提供hide时,您可以看到正确的行为:

$(this).hide(500);

<强> Working example.