Ho un codice HTML con un attributo onclick
. Voglio sovrascrivere quell'attributo usando jQuery. C'è un modo per rimuovere il gestore di clic utilizzando jQuery? Utilizzando unbind doesn't work.Posso rimuovere gestori eventi in linea usando jQuery?
risposta
Prova la funzione .removeAttr()
:
$(function() {
$('a').removeAttr('onclick');
});
Una volta eliminato l'attributo onclick
, è possibile allegare il proprio gestore di clic.
Perfetto! Grazie. – Skilldrick
Ho codice js inline su un tag onclick = "document.setLang {{lang.1}}. Submit(); return false;" inviando un modulo ma non riesco a smettere di inviare il modulo come hai detto ... – ratata
$("#theElement")[0].onclick = function() {
whatever();
};
// -- or --
$("#theElement")[0].onclick = null;
Non è che jQuery farebbe scomparire le funzioni e le proprietà del DOM standard. ;-)
hai ragione, ma la cosa bella delle funzioni jQuery è che si applicano a tutti gli elementi, quindi posso rimuovere onclick da tutti gli elementi corrispondenti senza avere sopra di loro. – Skilldrick
@Skilldrick: Tecnicamente anche 'removeAttr()' è un loop. Ma sono d'accordo che è più comodo scrivere da solo il ciclo. – Tomalak
C'è un plugin per questo, ma si dovrebbe fare solo quando è veramente necessario. Il plugin ti dà la possibilità di chiamare la vecchia funzione o di ignorarla completamente.
$(divElementObj).override('onclick', 'click', function(...));
trovati mangiare provato ma lavorato parzialmente quanto rimossi uno ma non tutti.
Invece ho provato a seguire il concatenamento come soluzione alternativa. Sto usando ver 1.4.2.
jQuery(“selector”)
.removeAttr("onclick").removeAttr("onmouseout").removeAttr("onmouseover");
Come citato in http://api.jquery.com/prop/ Rimozione di un gestore di linea evento onclick utilizzando .removeAttr() non ottenere l'effetto desiderato in Internet Explorer 8, 9 e 11. Per evitare possibili problemi, utilizzare .prop(), invece.
Quindi questo può essere fatto come
$(function() {
$('a').prop('onclick', false);
});
- 1. Come rimuovere tutti i gestori di eventi Click in Jquery
- 2. jQuery, aggiungere e rimuovere i gestori di eventi
- 3. Come posso passare argomenti ai gestori di eventi in jQuery?
- 4. jQuery vuoto funzione e gestori di eventi
- 5. Rimuovere correttamente gestori di eventi con funzioni anonime
- 6. jQuery 1.8 trova gestori di eventi
- 7. Posso disegnare una linea usando jQuery?
- 8. Jquery Rimuovi tutti i gestori di eventi all'interno dell'elemento
- 9. jQuery gestori di eventi non attivati in IE
- 10. Rimozione gestori di eventi
- 11. Modello eventi JQuery e prevenzione di gestori duplicati
- 12. jQuery: un modo per "aggiornare" i gestori di eventi?
- 13. C# gestori di eventi personalizzati
- 14. Come iniettare i gestori di eventi in eventi con Unity
- 15. Disattivare temporaneamente tutti i gestori di eventi jQuery attualmente attivi
- 16. jquery che attiva i gestori di eventi "on" e "off"
- 17. Accesso alle funzioni associate ai gestori di eventi con jQuery
- 18. JavaScript/jQuery: ascolto per i gestori di eventi appena registrati
- 19. come allegare gestori di eventi jquery per l'html appena iniettato?
- 20. C# - Rimuovere i gestori di eventi - eventi FormClosing o il metodo Dispose()
- 21. Come posso ascoltare eventi jQuery in AngularJS
- 22. Rimuovere gli eventi con jQuery o javascript
- 23. Overloading gestori di eventi generici a Scala
- 24. È possibile rimuovere tutti i gestori di eventi di un determinato elemento in javascript?
- 25. Come rimuovere più delegati degli eventi utilizzando solo metodo undelegate in jQuery
- 26. C#, gestori di eventi e Threading
- 27. Dove inserisco ascoltatori e gestori di eventi?
- 28. Usa jQuery per rimuovere uno stile in linea
- 29. Rimuovere uno stile specifico in linea con JavaScript | jQuery
- 30. C# - funzioni anonime e gestori di eventi
mi rendo conto che, per un grande sito che potrebbe essere ingombrante, ma non sarebbe stato più facile (e più leggero in termini di larghezza di banda codice scaricato) per utilizzare Notepad/Textmate/Gedit (o qualsiasi altro editor di testo) per trovare tutte le istanze di "onclick" (o onClick) e rimuoverle interamente? –
@David - Ho a che fare con lo schifo inline generato da Rails 2. Una volta caricato su Rails 3 non avrò questo problema, visto che hanno reso discreto tutto il codice JavaScript. – Skilldrick
... Non posso ignorare Rails (non ci ho mai giocato davvero), ma in risposta alla sua generazione di 'crap inline' posso solo dire * ewwwwww * ... –