2016-08-24 103 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

相關問題