2012-09-06 4 views
-2

바로 지금 div에 핸들 막대 템플릿을 추가하고 있습니다.Jquery 타이밍 문제

test = $(".someClass:onScreen") 

나는 그 클래스에 마우스를 올려 놓으면 때 그 같은 라인을 기록했는데이 화면에 물건을 반환하기 때문에 화면이 작동하는지 알고있다 - 나는 코드에서이를 사용하려고합니다. 자, 이제 div에있는 물건에 slideUp()을 추가했기 때문에 이런 일이 일어나고 있습니다. 나는 slideDown()을 할 때 줄이 올바르게 반환되기 때문에 이것을 알고있다.

어떻게이 문제를 해결할 수 있습니까? 슬라이드 업이 끝나면들을 수있는 일정이 있습니까?

@$el.find("#container").slideDown('fast',@appendSearchResults(resultsCollection)) 
    @$el.find("#container").empty() 

    appendSearchResults:(resultsCollection)=> 
    @$el.find("#searchContainerId").append(Handlebars.templates["resultsPage"](
     row: resultsCollection.toJSON() 
     nResults: resultsCollection.length 
    )) 
    @genImageToolTip() 
    console.log("testing ons creen") 
    test = $(".carImageClass:onScreen") 
    console.log(test) 

답변

0

jQuery를 .slideUp() 때 애니메이션이 완료 불려가는 완료 함수에 대한 인수를 가지고 -

편집 -

나는 여전히 소용뿐만 아니라, JQuery와 slideUps 콜백을 사용하여 시도합니다. 자세한 내용은 the jQuery doc에서 매우 명확합니다.

콜백을 전달할 때 함수 호출이 아닌 단순한 함수 참조를 사용합니다. 함수 호출을 거기에 넣으면 (실행 후 괄호로) 함수는 나중에 실행되지 않고 즉시 실행됩니다. 귀하의 코드는 정규 자바 스크립트처럼 보이지 않으므로 정확하게 작동하는 방법을 제안 할 수는 없습니다. 정상적인 자바 스크립트 콜백은 다음과 같이 될 것이다 :

$("#whatever").slideUp(2000, function() { 
    // do whatever you want to do upon completion 
}); 

또는 같은

: 또한

$("#whatever").slideUp(2000, slideDone); 

function slideDone() { 
    // do whatever you want to do upon completion of the slideUp event 
} 

는 jQuery를이 내장 :onScreen에 대한 선택이 없다가 그 선택을 제공 할 수있는 플러그인이있다. 당신이 그것을 설치하고 문서화 된대로 그것을 사용하고 있다면.


특정 코드에 대해서는 CoffeeScript에 대해 알지 못하지만 일반 자바 스크립트로 몇 가지 관련 예제를 보여 드리려고합니다.

이 작업을 수행 할 수 있습니다

$el.find("#container").slideDown('fast', function() { 
    appendSearchResults(resultsCollection) 
}); 

function appendSearchResults(resultsCollection) { 
    // code here 
} 

당신은이 작업을 수행 할 수 없습니다

$el.find("#container").slideDown('fast', appendSearchResults(resultsCollection)); 

function appendSearchResults(resultsCollection) { 
    // code here 
} 

이 즉시 appendSearchResults를 호출하고 있기 때문 작동하지 않습니다이다 slideUp에 그 함수의 리턴 결과를 전달합니다 기능이 아닙니다. 인수를 취하지 않는 slideUp 함수 참조를 전달해야합니다.

+0

죄송합니다. 질문을 입력 할 때 따옴표가 잘못 입력되었습니다. – praks5432

+0

@ praks5432 - 질문에 추가 한 새 정보를 기반으로 답변을 업데이트했습니다. – jfriend00

+0

그래, 나는 그 모든 시도, 지금은 지연을 사용했습니다 ...하지만 그것은 해킹 – praks5432