2013-03-17 2 views
-2

div 요소가 "message"요소로 채워져 있고 20 개 이상의 요소가있는 경우 슬라이스 (20) .animate를 페이드하고 애니메이션의 완성 된 함수에서 나머지 코드를 실행하고 싶습니다. ,하지만 20 개 이상의 요소가없는 경우 나머지 코드를 즉시 실행하고 싶습니다. 로직이 jquery에서 어떻게 보이나요?문제가있는 if 문

죄송합니다. noobish 질문에 대해, 나는 jquery에 익숙하지 않습니다.

편집 : 이제 결코 실행되지 도착 다른 코드의 중심 요소 무리 미만 20 div가있을 때 때 난 그냥 슬라이스 (20)를 사용하는 경우

if ($(".info #future>center>div").length<20) {/*Skip straight to bunch of other code*/} 
$(".info #future>center>div").slice(20).animate({opacity:0}, 500, function() 
{ 
//Bunch of other code here 

: 여기에 내 코드입니다.

+7

코드를 공유해주십시오. –

+0

추가 된 코드가 불투명하다면 죄송합니다. – user2177393

+0

문제가있는 동작을 보여주고 관찰 된 동작과 비교하는 [전체 동작 예제] (http://sscce.org)를 게시하십시오. (예 : http://jsfiddle.net) – Zeta

답변

1

다른 곳에서 정의 된 함수 식으로 건너 뛸 수 없습니다. 두 가지 모두에서 사용할 수있는 변수에 할당 된 독립 실행 형 함수로 만들고 호출하거나 콜백으로 전달해야합니다.

function done() { 
    //Bunch of other code here 
} 
var divs = $(".info #future>center>div"); 
if (divs.length < 20) 
    done(); 
else 
    divs.slice(20).animate({opacity:0}, 500, done);