Il mio framework web ha aggiornato automaticamente il mio script jQuery con l'ultima versione corrente, la 1.9.Come sostituire "live" da jQuery 1.8.3 a jQuery 1.9?
Ora tutta la mia:
$(".myclass").live("click", function() {...
non funzionano più. L'ho usato principalmente con qualche ajax chiamato quale compilato html nella mia pagina.
Vorrei sapere come sostituire questa funzione nell'ultima versione. Un amico mi ha detto di usare "on", ma il "on" rimane fisso sullo stesso elemento.
Spiegazione, in questo esempio (no ajax), utilizzo un'icona "+" per visualizzare un "elenco ul li".
$(".closed").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("displayed").removeClass("hidden").show();
$(this).addClass("openned").removeClass('closed');
$(this).html('<i class="icon-minus"></i>');
});
$(".openned").live('click', function(){
$("#ul_list_"+$(this).attr('id')).addClass("hidden").removeClass("displayed").hide();
$(this).addClass("closed").removeClass('openned');
$(this).html('<i class="icon-plus"></i>');
});
(lo so che lo script non è il più ottimizzato mai, ma ha funzionato. Ho usato le classi per aprire o chiudere le mie liste. E se il visitatore non ha JS abilitato, nulla è nascosto, tutto le liste sono aperte piegate)
Note:
- ho provato https://github.com/jquery/jquery-migrate, ma l'unico messaggio che ho è "JQMIGRATE: jQuery.fn.live() è deprecato", non come risolvere il problema esso.
Hai provato a "legare"? –
Infatti, ho cercato da 1.8 a 1.9, o semplicemente "jquery 1.9 live" senza accorgercene che era da 1.7! Grazie! – Polopollo
Vedere [Esempi di migrazione] (http://stackoverflow.com/a/14354091/584192) –