2013-05-07 3 views
1

slideUp 또는 slideDown이 요소에서 수행 될 때 function을 호출하고 싶습니다. 이것이 가능한가?핸들러를 jQuery 효과에 바인딩 할 수 있습니까?

뭔가 같은 :

$('#panel').on('slideUp', function() { open--; }); 
$('#panel').on('slideDown', function() { open++; }); 

업데이트 : 모든 페이지에 걸쳐, AJAX 응답 내에서, 해시 링크 클릭 : 문제는 슬라이드 호출 (. $() slideUp() 예)의 톤이 있다는 것입니다 , 등등. 어떻게 든 각 호출 함수에 코드를 추가하는 대신 슬라이드 자체에 바인딩되기를 바랬습니다.

+0

슬라이드 메서드의 콜백을 사용하십시오 ... – elclanrs

답변

1

이벤트가 없기 때문에 이벤트에 바인딩 할 수 없습니다.

하지만 당신은 사용자 정의 이벤트와 자신의 작은 플러그인을 사용할 수 있습니다, 애니메이션

http://api.jquery.com/slideUp/

+0

그것이 가능할 것 같으면, 나는 일 후에 그것을 시도 할 것이다. – Josh

+0

이것은 효과가 있었을 것입니다. 나는이 모든 것을 불가능하게 만든 또 다른 장애물을 만났습니다. 그러나 그 전까지는 이것은 잘 진행되고있었습니다. :) 감사. 나는 콜백을 알지 못했다. – Josh

1

당신이 정말로 이렇게 할 경우

$('#panel').slideUp(function() { ... }); 
를 완료 한 후 호출 될 핸들러를 전달할 수 있습니다, 뭔가 같은 : 여기
$.fn.mySlideToggle = function() { 
    this.slideToggle(); 
    this.trigger('mySlideToggle'); 
} 

$('div').on('mySlideToggle', function(){ console.log('hey') }); 
$('button').on('click', function(){ $('div').mySlideToggle(); }); 

조금 데모 (콘솔 확인)입니다 : http://jsbin.com/asejif/2/edit

,536,

슬라이드 이벤트가 제공하는 콜백을 사용할 수 있기 때문에 귀하의 경우에는 중복되지만 다른 것들에는 유용 ​​할 수 있습니다 ...

관련 문제