Tengo algo de HTML con un atributo onclick
. Quiero anular ese atributo usando jQuery. ¿Hay alguna forma de eliminar el controlador de clics mediante jQuery? Usando unbind doesn't work.¿Puedo eliminar manejadores de eventos en línea usando jQuery?
Respuesta
Pruebe la función .removeAttr()
:
$(function() {
$('a').removeAttr('onclick');
});
Una vez que haya eliminado el atributo onclick
, puede adjuntar su propio controlador de clics.
¡Perfecto! Gracias. – Skilldrick
Tengo js código en línea en una etiqueta onclick = "document.setLang {{lang.1}}. Submit(); return false;" enviando un formulario pero no puedo dejar de enviar el formulario como mencionas ... – ratata
$("#theElement")[0].onclick = function() {
whatever();
};
// -- or --
$("#theElement")[0].onclick = null;
No es que jQuery haga desaparecer las funciones y propiedades DOM estándar. ;-)
tienes razón, pero lo bueno de las funciones de jQuery es que se aplican a todos los elementos, por lo que puedo eliminar el onclick de todos los elementos coincidentes sin tener que para mirar por encima de ellos. – Skilldrick
@Skilldrick: Técnicamente, 'removeAttr()' también es un bucle. Pero estoy de acuerdo en que es más conveniente que escribas el loop tú mismo. – Tomalak
Hay un plugin para ello, pero solo deberías hacer esto cuando realmente lo necesites. El complemento le da la opción de llamar a la función anterior o ignorarla por completo.
$(divElementObj).override('onclick', 'click', function(...));
opciones dadas intentado, pero funcionó parcialmente mientras se quitaban uno, pero no todos.
En su lugar, intenté seguir a chaining as workaround. Estoy usando el ver 1.4.2.
jQuery(“selector”)
.removeAttr("onclick").removeAttr("onmouseout").removeAttr("onmouseover");
Como se cita en http://api.jquery.com/prop/ Extracción de un controlador de línea evento onclick usando .removeAttr() no lograr el efecto deseado en Internet Explorer 8, 9 y 11. Para evitar problemas potenciales, utilice .prop() en su lugar.
Así que esto se puede hacer como
$(function() {
$('a').prop('onclick', false);
});
- 1. Cómo sobrescribir manejadores de eventos jquery
- 2. ¿Existen herramientas/técnicas para depurar manejadores de eventos jQuery?
- 3. jQuery: ¿Hay alguna manera de "actualizar" los manejadores de eventos?
- 4. Adjuntar manejadores de eventos jQuery para que se desencadenen primero
- 5. Los manejadores de eventos de Jquery devuelven los valores
- 6. cómo adjuntar manejadores de eventos jquery para html recién inyectado?
- 7. Cómo inyectar manejadores de eventos en eventos con Unity
- 8. ¿Cómo puedo pasar argumentos a los manejadores de eventos en jQuery?
- 9. ¿Puedo trazar una línea usando jQuery?
- 10. jQuery, agregar y eliminar controladores de eventos
- 11. Eliminar estilo en línea específico con jquery
- 12. Eliminar eventos con jQuery o Javascript
- 13. ¿Necesita "manipular" manejadores de eventos en formularios web ASP.NET
- 14. Deshabilitar algunos manejadores de eventos Ajax globales de jQuery para una solicitud
- 15. Cómo agregar manejadores de eventos adicionales a una instancia jquery-ui datepicker?
- 16. Eliminar saltos de línea usando C#
- 17. Cómo eliminar todos los controladores de eventos Click en Jquery
- 18. Con archivos .ics, ¿puedo eliminar eventos antiguos?
- 19. Eliminando todos los manejadores de eventos de una vez
- 20. Mejor práctica de Backbone.js para manejadores de eventos nombrando
- 21. Problema al eliminar orígenes de eventos de FullCalendar (jQuery)
- 22. ¿Cómo comprobar si hay detectores/manejadores de eventos de JavaScript conectados a un elemento/documento?
- 23. tabla Eliminar fila usando jQuery
- 24. JQuery: Eliminar eventos "OnClick" de las etiquetas 'a'
- 25. eventos JavaScript en línea sintaxis
- 26. ¿Se pueden agregar múltiples detectores/manejadores de eventos al mismo elemento usando javascript?
- 27. logging eliminar/inspeccionar/modificar manejadores configurados por fileConfig()
- 28. Manipuladores de eventos de limpieza de JQuery
- 29. ¿Cómo puedo eliminar niños en jQuery?
- 30. ¿Cómo puedo eliminar la primera palabra de una línea?
Soy consciente de que, para un sitio grande que podría ser difícil de manejar, pero ¿no sería más fácil (y más ligera en términos de ancho de banda de código descargado) para utilizar el Bloc de notas/Textmate/Gedit (o cualquier otro editor de texto) para encontrar todas las instancias de 'onclick' (o onClick) y simplemente eliminarlas por completo. –
@David - Estoy lidiando con la basura en línea generada por Rails 2. Una vez que haya subido a Rails 3 no tendré este problema, ya que han hecho todo el JavaScript discreto. – Skilldrick
... No puedo descartar a Rails (nunca he jugado realmente con eso, aún) pero en respuesta a su generación de 'basura en línea' solo puedo decir * ewwwwww * ... –