2013-03-25 3 views
1

jQuery .hover 함수에 의해 트리거 된 동작이 이미 요소에 있는지 확인하는 방법이 있습니까?jQuery .hover 동작이 이미 바인드되어 있는지 확인

+2

버전별로 바뀔 수있는 내부 방법을 사용하지 않는 방법은 없습니다. –

+0

쉬운 방법은 없지만'$ ._ data (elem, "events");'를 확인하고 mouseenter/leave가 바인딩되었는지 확인할 수 있습니다. – adeneo

+0

이것을 확인하십시오 http://stackoverflow.com/questions/1236067/test-if-event-handler-is-bound-to-an-element-in-jquery –

답변

1

당신은 호버의 경우 element.data('events')['eventName']

을 확인하여이를 확인할 수는있을 것입니다 : this answer

에서 언급 한 바와 같이

jQuery를 1.8에서
var hasHover = x.data('events')['mouseover'] && x.data('events')['mouseout']; 

나중에, 당신은 그것을 $._data를 사용하여 액세스해야

var events = $._data(obj[0], "events"); 
var hasHover = events['mouseover'] && events['mouseout']; 
+2

jQuery 1.8+를 사용하지 않는 한 다른 곳으로 옮겼습니다. –

+0

@KevinB - 아, 자세히 알지 못했습니다. 몇 년 동안 위의 기술을 사용했습니다. 그러나 그렇습니다. <= 1.7.2 – techfoobar

+0

버전을 사용하고 있습니다. @KevinB - 또 다른 SO 답변으로 1.8보다 큰 버전을 해결합니다. – techfoobar

0

선택기에서 필터를 살펴보십시오

$('.result').each(function(){ 
$(this).hover(function() { 
$(this).filter(':not(:animated)').animate({ 
'height':'110px', 
},160); 
},function(){$(this).animate({'height':'38px'},80);}); 
}); 
+0

아 나는 질문을 놓쳤다. –

관련 문제