Immaginiamo di dover usare il metodo .live()
una sola volta su un elemento generato via AJAX e quindi di dover rimuovere l'evento dopo il primo clic. Un problema noto di jQuery è che il metodo .die()
non funziona all'interno del metodo .live()
. Occorre trovare un'altra soluzione.
Abbiamo il seguente codice che genera un elemento dinamicamente via AJAX:
$('#live').on('click', function() {
$.ajax({
url: '/echo/html/',
type: 'POST',
dataType: 'html',
data: {
html: '<div id="output">Test</div>',
delay: 1
},
success: function(html) {
$('#output').remove();
$(html).appendTo('body');
}
});
});
Possiamo usare .unbind()
o .off()
per rimuovere l'evento:
$('#output').live('click', function(event) {
alert('Live');
$(this).unbind(event);
});