2010-08-25 20 views

Respuesta

84

Puede llamar .unbind() sin parámetros para hacer esto:

$('p').unbind(); 

De the docs:

En el caso más simple, sin argumentos, .unbind() elimina todos los controladores conectados a los elementos.

+1

Si 'p' tiene algunos elementos secundarios, ¿esto declaración de desvinculación de los oyentes en los que son demasiado? – Vrishank

69

Como de jQuery 1.7, off() y on() son los métodos preferidos para atar y controladores de eventos desvinculación.

Así que para eliminar todos los manipuladores de un elemento, utilice la siguiente:

$('p').off(); 

o para los manipuladores específicos:

$('p').off('click hover'); 

Y para añadir o controladores de eventos se unen, se puede utilizar

$('p').on('click hover', function(e){ 
    console.log('click or hover!'); 
}); 
+24

Si desea _remove cada unión de su página_ puede llamar '$ (document) .add ('*') fuera();. '. – flu

+6

Esto debe actualizarse como la respuesta actual. –

+0

$ (documento) .add ('ID_OF_THE_ELEMENT'). Off(); me ayudó .. gracias @flu – Moitt

0

@jammypeach tiene razón de ser fuera & los métodos aceptados para su uso. Desvincular a veces termina creando comportamientos extraños (por ejemplo, no desvincular los eventos correctamente).

Para desvincular todos los elementos dentro del cuerpo, encontrar a todos y para cada uno apagar el controlador de clic (lo que era el antiguo unbind):

$("body").find("*").each(function() { 
    $(this).off("click"); 
}); 

También vea cómo guardar los eventos que usted ha apagado en this stack overflow question.

Cuestiones relacionadas