2016-08-24 104 views
1

我想通过点击它们(逐个)来删除元素。我差不多完成了,但遇到了一些小问题。为什么hide()的行为不同?

我写这段代码,这工作很好。但是这只适用于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()。并为我的问题提供更好的解决方案?

+0

似乎是最后一个被删除,但事实并非如此。这里有一个例子:https://jsfiddle.net/jkbqso0L/ – Knriano

回答

4

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

hide当一个时间你可以看到正确的行为,它的动画:

$(this).hide(500); 

Working example.

+0

它的工作原理。但无法理解。怎么样? – beginner

+0

再次阅读我的答案,我描述了行为。它只能看到删除最后一行,但它没有。 @ user6733315 – eisbehr

+0

谢谢你,你是天才。 – beginner

相关问题