2009-10-13 3 views
42

Ich versuchte $.unbind('hover'), die nicht funktioniert.

+0

Sie angeben, welches Element aus der Veranstaltung zu lösen? zB $ ("a"). unbind ("hover") – Marius

+0

Ja, es wird von $ ("# id") hinzugefügt. hover (...) und $ ("# id"). unbind ('hover') funktioniert nicht. – Mask

+2

mögliches Duplikat von [Wie kann ich "Hover" in jQuery lösen?] (Http://stackoverflow.com/questions/805133/how-do-i-unbind-hover-in-jquery) – madth3

Antwort

74

Die hover Funktion es ist nur ein short-hand zu binden zwei Handler an die mouseenter und mouseleave Ereignisse, sollten Sie sie entbinden:

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

Sie können diese Aufrufe kombinieren: '.unbind ('mouseover mouseout');' – nickf

+0

Dank @nickf, bearbeitet, um Ihre Empfehlung hinzuzufügen. – CMS

+1

Es funktioniert immer noch nicht – Mask

-2

Sie könnten auch versuchen:

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

+6

Das Binden zusätzlicher Ereignisbehandlungsroutinen an ein Objekt überschreibt zuvor gebundene Behandlungsroutinen nicht. Dies mag gut funktionieren, da das "return false" die Verbreitung stoppen kann, aber es ist keine großartige Lösung. – nickf

2

tringger unbinding mit einem Klick

$('.item').click(function() { 
$('.item').unbind('mouseenter mouseleave'); 
}); 
11

Api documentation on hover:

Beispiel: das obige Beispiel verwenden, um unbind:

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

Was ist der Unterschied zwischen "off" und "unbind"? – Ian

+4

Wie in [** unbind() **] definiert (https://api.jquery.com/unbind/): _Event-Handler, die mit .bind() verbunden sind, können mit .unbind() entfernt werden. (Ab jQuery 1.7 werden die Methoden .on() und .off() zum Anhängen und Entfernen von Ereignishandlern für Elemente bevorzugt.) _ – diynevala