2009-10-13 2 views
42

Próbowałem $.unbind('hover'), który nie działa.

+0

Czy określającą co elementem rozpiąć zdarzenia z? np. $ ("a"). unbind ("hover") – Marius

+0

Tak, jest dodawany przez $ ("# id"). hover (...) i $ ("# id"). unbind ("hover") nie działa. – Mask

+2

możliwy duplikat [Jak usunąć powiązanie "hover" w jQuery?] (Http://stackoverflow.com/questions/805133/how-do-i-unbind-hover-in-jquery) – madth3

Odpowiedz

74

hover funkcja to tylko short-hand związać dwie ładowarki do wydarzeń mouseenter i mouseleave należy rozpiąć je:

$('#item').unbind('mouseenter mouseleave'); 
+4

Możesz łączyć te połączenia: '.unbind (" mouseover mouseout ");' – nickf

+0

Dzięki @nickf, edytowane w celu dodania rekomendacji. – CMS

+1

To nadal nie działa – Mask

-2

Można też spróbować:

$('#item').bind('hover', function(){return false})

+6

Wiązanie dodatkowych procedur obsługi zdarzeń do obiektu nie zastępuje poprzednio związanych procedur obsługi. To może dobrze działać, ponieważ 'return false' może zatrzymać propagację, ale nie jest to świetne rozwiązanie. – nickf

11

Api documentation on hover:

Przykład: Aby rozwiązać powyższy przykład użyć:

$("td").off('mouseenter mouseleave'); 
+2

Jaka jest różnica w 'off' i' unbind'? – Ian

+4

Zgodnie z definicją zawartą w [** unbind() **] (https://api.jquery.com/unbind/): _Programy obsługi zdarzeń związanych z .bind() można usunąć przy pomocy .unbind(). (Od wersji jQuery 1.7 metody .on() i .off() są preferowane do dołączania i usuwania procedur obsługi zdarzeń na elementach.) _ – diynevala