2013-05-09 2 views
0

팝업을 움직여 동시에 사라지게합니다. 애니메이션이 매번 같아 지도록 숨겨진 팝업의 위치를 ​​재설정하고 싶습니다.왜 포스트 애니메이션 기능이 호출되지 않습니까?

요소가 롤오버되면 팝업이 아래로 슬라이드되고 페이드 인됩니다. 밖으로 펼쳐지면 팝업이 아래로 미끄러 져 사라지고 숨겨지면 초기 위치로 재설정됩니다.

$('*:has(.rollover)').hover(function(){ 
    $('.rollover',this).fadeIn('fast').animate({ 
    'top' : '60px', 
    }, {duration: 'fast', queue: false}, function() {}); 
},function(){ 
    $('.rollover',this).fadeOut('fast').animate({ 
    'top' : '70px', 
    }, {duration: 'fast', queue: false}, function() { 
    console.log("hello"); 
    $(this).css('top','50px'); 
    }); 
}); 

문제는 top가 트리거되지 않는 리셋 마지막 줄, 그리고 둘 로그 문입니다 :

여기 내 코드입니다. 왜 이런거야?

+0

가 연결된 아마 이벤트를 의미 .rollover 클래스와 요소를 가진 모든 요소에 이벤트 핸들러를 첨부 : 내가 가진해야

, {duration: 'fast', queue: false}, function() {}); 

페이지의 거의 모든 요소로, 정말 나쁜 생각처럼 들립니다. 그리고 당신은 이것을 다음과 같이 단순화 할 수 있습니다 : [** FIDDLE **] (http://jsfiddle.net/Pmbr8/) – adeneo

+0

@adeneo 나는 * : has (.rollover)를 사용하여 즉각적인 자녀 인'.rollover '는 틀린가? – fredley

+0

해당 셀렉터는 직계 하위에 국한되지 않고 지정된 선택기와 일치하는 요소를 하나 이상 포함하는 요소를 선택합니다. 즉, 클래스 .rollover가 포함 된 요소가 페이지의 모든 요소에 해당합니다. – adeneo

답변

0

내 오류가 있고 있었다 :

, {duration: 'fast', queue: false, complete : function() {}}); 
관련 문제