remove event español all javascript jquery events

javascript - español - Cancelar el manejo de eventos jQuery



stoppropagation (4)

Jquery tiene un método para eventos de espaciado de nombres. http://docs.jquery.com/Namespaced_Events

Puede agregar, activar y eliminar funciones separadas vinculadas al mismo evento a través de espacios de nombres:

$("a").bind("click.custom1",function(){ ... }); $("a").bind("click.custom2",function(){ ... }); $("a").trigger("click.custom2"); $("a").unbind("click.custom2");

Mientras desvincules el evento de espacio de nombres, tu onclick normal no se verá afectado. Es posible que deba vincular dos espacios de nombres separados al evento click como se indica arriba si eso no funciona.

Configuré el controlador de eventos onclick de la siguiente manera:

element.onclick = function() { /*code */ }

Imagine que hay controladores de eventos configurados usando el método jQuery bind () o controladores similares.

$(''element'').bind(''click'', function(){/*another function*/})

¿Cómo puedo evitar invocar el controlador definido con jQuery desde el controlador que describí al principio?

NB stopPropagation () y etc. Los métodos de jQuery no funcionan desde esa función, ya que se pasan con el objeto de evento nativo.


Siguiendo con la respuesta de JimmyP. Lo he intentado

$(''#x'').click( function(e){ alert(''hello''); }); document.getElementById(''x'').onclick = function(){ $(''#x'').unbind(''click''); alert("goodbye"); }

El evento jQuery se ejecuta una vez en este ejemplo. No creo que pueda confiar en el orden de los manejadores que sean invocados, como quiera que los defina, así que supongo que tendrá que aceptar que el evento jQuery podría dispararse una vez. Agregar el onclick primero evita que el evento jQuery se active, pero, como dije, no creo que sea confiable.


intente agregar la siguiente línea en el manejador de eventos jQuery:

return false;


No estoy 100% seguro de lo que estás preguntando, pero quizás esto ayude:

Puede crear un nuevo objeto de evento (compatible con W3C DOM) a través del constructor de eventos expuesto de jQuery:

Por ejemplo:

element.onclick = function(e) { var aBetterEventObject = jQuery.Event(e); // Now you can do what you want: (Cross-browser) aBetterEventObject.preventDefault() aBetterEventObject.isDefaultPrevented() aBetterEventObject.stopPropagation() aBetterEventObject.isPropagationStopped() aBetterEventObject.stopImmediatePropagation() aBetterEventObject.isImmediatePropagationStopped() }

EDITAR: Leyendo de nuevo su pregunta, no creo que el problema sea la propagación, parece que desea cancelar la ejecución de un controlador de eventos dentro de un controlador de eventos. No estoy seguro de que esto sea posible. Podrías simplemente desvincular todos los manejadores ( jQuery (elem) .unbind (''clic'') ) pero no creo que eso sea lo que estás buscando ...