2009-10-13 22 views
42

Intenté $.unbind('hover'), que no está funcionando.

+0

¿Está especificar qué elemento para desenlazar el caso de? ej. $ ("a"). unbind ("hover") – Marius

+0

Sí, se agrega por $ ("# id"). hover (...), y $ ("# id"). unbind ('hover') no está trabajando. – Mask

+2

posible duplicado de [¿Cómo puedo desvincular "hover" en jQuery?] (Http://stackoverflow.com/questions/805133/how-do-i-unbind-hover-in-jquery) – madth3

Respuesta

74

La función hover es sólo una short-hand para unir dos manipuladores a los mouseenter y mouseleave eventos, se debe desvincular ellos:

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

Puede combinar esas llamadas: '.unbind ('mouseover mouseout');' – nickf

+0

Gracias @nickf, editado para agregar su recomendación. – CMS

+1

Todavía no funciona – Mask

-2

También puede probar:

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

+6

El enlace de manejadores de eventos adicionales a un objeto no anula los manejadores previamente enlazados. Esto bien puede funcionar, ya que el 'return false' puede detener la propagación, pero no es una gran solución. – nickf

2

tringger compromiso.Por con un clic

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

Api documentation on hover:

Ejemplo: Para separar el ejemplo anterior uso:

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

¿Cuál es la diferencia en 'off' y' unbind'? – Ian

+4

Según se define en [** unbind() **] (https://api.jquery.com/unbind/): _Administradores de eventos adjuntos con .bind() se pueden eliminar con .unbind(). (A partir de jQuery 1.7, se prefieren los métodos .on() y .off() para adjuntar y eliminar manejadores de eventos en los elementos.) _ – diynevala