2016-08-24 2 views
1

요소를 하나씩 클릭하여 제거하고 싶습니다. 거의 끝났지 만 약간의 문제가 발생했습니다.hide()가 다르게 작동하는 이유는 무엇입니까?

이 코드는 다음과 같이 작성합니다. 하지만 이는 slide()css()에 대해서만 적용됩니다. 이 두 예제는 내가 클릭 한 요소에만 적용됩니다.

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

https://jsfiddle.net/k61Lb684/

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

$("#content").on("click","*",function(){ 
    $(this).slideToggle(); 
}); 
그러나 문제는 내가 요소를 제거하려는하지만이 같은 방법으로 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

관련 문제