Ho un codice che si associa all'azione clic sul caricamento della pagina, è un collegamento. Quando faccio clic, invia una richiesta Ajax e sostituisce il contenuto in alcuni div con la funzione jquery append(). Questo nuovo contenuto ha un link e ho bisogno di legare qualche azione per loro, ma non potrei ... legare non funziona credo, perché jquery append non aggiorna l'albero DOM. Come posso ottenere un legame tardivo?jquery late binding
risposta
L'associazione tardiva è ora disponibile utilizzando in diretta l'evento di jQuery():
$('a.my-links-class').live('click', function() {
// do your link action here
});
È necessario utilizzare la funzione live
di jQuery, che associa un evento a tutti gli elementi che corrispondono a un selettore, indipendentemente dal momento in cui sono stati creati.
È possibile utilizzare jQuery 1.3 s '+ Funzione $().live(event, function)
. $("a").live("click", myClickFunc)
eseguirà il binding allo o allo $("a").bind("click", myClickFunc)
, ma gli eventi saranno "live", quindi verranno aggiunti gli elementi aggiunti al DOM dopo tale chiamata di funzione. È possibile rimuovere gli eventi dal vivo con $().die()
. Per ulteriori informazioni su $(). Live, vedere the documentation for it.
Un'altra opzione sarebbe quella di avere una funzione di legare gli elementi dato un certo contesto (utilizzando la funzione di $ di selezione ha raramente utilizzato secondo parametro):
function myBindEvents(context) {
$("a", context).click(myClickFunc);
}
e chiamare che ogni volta che si aggiorna un elemento con AJAX :
$("<div>").load("...", "...", function(){myBindEvents(this);});
Spero che questo aiuti. :)
caso .Live() era deprecato da verions 1.9 in su.
Per chiunque utilizzi la versione successiva di Jquery, è possibile utilizzare l'evento .on(), funziona praticamente allo stesso modo.
ci sono 3 funzioni che possono fare questo:
$(selector).live(events, data, handler);
- jQuery 1.3+ - versione deprecati: 1.7, rimosso: 1,9 (reference)$(document).delegate(selector, events, data, handler);
- jQuery 1.4.3+ - A partire da jQuery 1.7, .delegate() è stato sostituito dal metodo .on(). (reference)$(document).on(events, selector, data, handler);
- jQuery 1.7+ - preferito (reference)
E 'generalmente consigliato di usare on()
ed il suo utilizzo è semplice e probabilmente modo preferito.
- Il primo selettore deve esistere quando si chiama la funzione e non può essere eliminato o anche l'evento verrà rimosso (questo può essere
document
). - Il primo parametro è l'evento (ad es."clic")
- Il secondo parametro è il selettore di cui si desidera associare l'evento.
- Infine, è possibile aggiungere alcuni dati personalizzati e una funzione all'evento.
Ecco alcuni esempi di codice:
// Make sure the DOM is ready
$(function() {
// Bind the click event to the function
$(document).on("click", "a.class", function(event) {
// Put your code here.
});
});
Brillante! Mi chiedo perché questo non funziona: $ (function() { $ ('. Class'). On ("clic", "a", funzione (evento) { // Inserisci qui il tuo codice. }); }); – Narayana
Stai cercando un elemento 'a' in un altro elemento con classe' class'? – Broxzier
Sì ... Ho pensato che '$ ('. Class1')' selezionerà tutti gli elementi con una classe di 'class1', il' "a" 'selezionerà i tag di ancoraggio al di fuori di esso e associerà il gestore di eventi. No? – Narayana
Metodo .live
in JQuery 1.9
è deprecated.So ora u può fare in questo modo:
$("body").on("click", ".classname", function() { ... })
- 1. Excel Late Binding EntireColumn.NumberFormat
- 2. late binding in C
- 3. Late Binding e WithEvents utilizzando VBA
- 4. Late Binding to dll basato sull'architettura della CPU
- 5. Associazione dinamica == late binding in Java o no?
- 6. jQuery Binding dati TwoWay
- 7. Differenza tra Reflection e Late Binding in java con esempi in tempo reale
- 8. Binding angularJS Plugin jQuery qTip2
- 9. jQuery come eseguire il binding su un binding di dati?
- 10. Problema WebBrowser con nomi oggetto/proprietà Late Bind
- 11. Come fare Modello Binding con jQuery Ajax
- 12. jQuery Mobile - binding to pageinit event
- 13. Binding evento click in jQuery CoffeeScript
- 14. emberjs binding
- 15. spring mvc 3 binding list dinamico + jquery + AJAX
- 16. Binding Jquery Eventi On elementi generati attraverso altri eventi
- 17. jquery binding clicca per l'attivazione dell'etichetta due volte
- 18. Ottieni il valore di data-binding in jquery
- 19. jQuery evento di binding e unbind con parametri
- 20. Knockout cleanNode() rimuove i binding di eventi jQuery?
- 21. Binding onchange to dropdown
- 22. Turbolinks Moltiplicazioni binding
- 23. knockoutjs click binding in foreach binding
- 24. Cosa significa "{Binding Path =.}" Nel binding WPF?
- 25. Dynamic Scoping - Deep Binding vs Shallow Binding
- 26. WPF Binding FallbackValue impostato su Binding
- 27. PasswordBox Binding
- 28. Binding ConverterParameter
- 29. Binding StringFormat
- 30. Binding condizionale
Questo solo fatto il mio giorno. live() è incredibile! – AnApprentice
Dovresti usare 'on()' invece di 'live()'. – Broxzier