2010-04-03 4 views
1

삭제 단추를 누르면 멋진 효과가 해당 li에서 실행되고 jquery의 .remove() 함수를 사용하여 제거됩니다. 어떤 이유인지 부모 ul에서 .size()를 시도하면 페이지가로드 될 때 목록 항목의 개수가 표시됩니다.li의 일부가 .remove()를받은 후 ul에있는 li의 수를 센다.

업데이트에는

var href = $(this).attr("href"); 
$(this).children(".deleteButton").fadeOut("fast"); 
$(this).parent("li").slideUp(300); 
setTimeout("$(this).parent('li').remove();",300); 
setTimeout("alert($('ul.list').children().size());",300) 
$.get(href); 
return false; 

답변

0

SlideUp는 요소를 제거하지 않습니다. 그것은 실제로 그것의 높이를 변경하고 아무 것도 표시하지 않도록 설정합니다.

요소를 제거하려면 콜백을 사용하십시오.

$(this).parent("li").slideUp(300, function(){ $(this).remove();}); 
1

코드

setTimeout("$(this).parent('li').remove();",300);` 

의이 작품은 개념적으로 잘못된 것입니다.
$(this)이 닫히지 만 실제로 setTimeout 콜백에 문자열을 전달할 것으로 예상됩니다. 콜백이 실행될 때

그래서, $(this)는 후 해당 요소 을 제거 할 수 있도록

당신은, 당신이 호출 slideUp 함수에 콜백을 넣을 수 있습니다 (PLZ 날 수정? 또는 문서) window 참조 의 해지 :

$(this).parent("li").slideUp(300, function(){ $(this).remove();}); 
관련 문제