Cuando busqué la solución a un problema que tengo ahora, encontré este hilo: jQuery: more than one handler for same event. Ahora me pregunto si es posible eliminar solo uno de estos controladores.¿Es posible eliminar un controlador de eventos específico de un evento con múltiples controladores?
¿Es posible eliminar un controlador de eventos específico de un evento con múltiples controladores?
Respuesta
Es posible, si no lo hace uso devoluciones de llamada anónimos:
var $elt = $(...);
function clickHandler1(event){...}
function clickHandler2(event){...}
// bind both
$elt.click(clickHandler1);
$elt.click(clickHandler2);
// unbind just the first
$elt.unbind('click', clickHandler1);
Ver también: .unbind()
docs.
Wild Demo apareció! :-D – maryisdead
En realidad, puede hacerlo utilizando las devoluciones de llamada anónima a través de espacios de nombre del evento:
$elt.bind('click.handler1', function(event) {
alert('click handler 1');
});
$elt.unbind('click.handler1');
Ver demostración modificado here.
Y here para obtener más información.
Esto se añadió en jQuery 1.4.3, que en realidad salió más de 4 meses antes de que se formulara la pregunta.
¿podemos pasar parámetros en la función? –
Esta es una buena respuesta cuando se usa la devolución de llamada anónima. Amándolo. –
Esta debería ser la respuesta aceptada, ya que la mayoría de las llamadas de enlace tendrán una función anónima. – Omeed
- 1. ¿Es posible eliminar todos los controladores de eventos de un elemento determinado en javascript?
- 2. ¿Agregar controladores de eventos múltiples para un evento en XAML?
- 3. Implementación de un único controlador de eventos para controles múltiples con diferentes delegados controladores de eventos
- 4. jQuery Controladores de eventos múltiples: ¿cómo cancelar?
- 5. ¿Debo eliminar un controlador de eventos?
- 6. ¿Qué es un controlador de evento?
- 7. Múltiples controladores con un solo modelo
- 8. jQuery, agregar y eliminar controladores de eventos
- 9. C# Controladores de eventos
- 10. ¿Vincula un controlador de eventos a múltiples elementos jQuery?
- 11. ¿Es posible colocar un controlador de eventos en un hilo diferente para la persona que llama?
- 12. Cómo quitar un controlador de eventos lambda
- 13. Controladores de eventos en constructores: ¿es posible o incluso sabio?
- 14. en YUI3 ¿es posible adjuntar un solo controlador a múltiples eventos?
- 15. Eliminar un elemento de un ObservableCollection en un controlador de eventos CollectionChanged
- 16. Controladores automáticos de eventos de cable con StructureMap?
- 17. jQuery encontrar controladores de eventos registrados con un objeto
- 18. matplotlib conexiones múltiples a un controlador de eventos?
- 19. Delphi VCL para Win32 - múltiples controladores de eventos
- 20. Cómo eliminar todos los controladores de eventos Click en Jquery
- 21. Método JQuery .on() con múltiples controladores de eventos para un selector
- 22. ¿Es posible descargar un controlador de kernel sin un reinicio?
- 23. ¿Es posible "robar" un controlador de eventos de un control y dárselos a otro?
- 24. Enlazando un único controlador de eventos a múltiples eventos con jQuery
- 25. Cómo desenlazar un controlador de eventos específicos
- 26. ¿Cómo utilizo un xib con múltiples controladores de visualización?
- 27. Acceso a funciones vinculadas a controladores de eventos con jQuery
- 28. añadir un controlador de eventos
- 29. Crear controladores de eventos C# vacíos automáticamente
- 30. Adición propio controlador de eventos frente a otros controladores de eventos
¿Para el mismo evento o eventos diferentes? –
Esto no se puede hacer fácilmente. Tienes que hacer un truco, jQuery no fue diseñado para esto. use el espacio de nombres de eventos en su lugar. – Raynos
Creo que si almacena el controlador de eventos en una variable, es posible que pueda eliminarlo de la misma forma en que lo hace, con la variable, pero no lo he probado. –