2009-09-07 14 views
5

Sto creando nuovi < li> elementi con una funzione di clic live(), ma jquery non mi dirà l'indice degli elementi appena creati. Ecco il codice:Trovare l'indice di un elemento all'interno di una funzione live

$esl = $('.dynamicLink'); 
    $esl.live('click',function(){ 
     var dynamicIndex = $esl.index(this); 
     alert(dynamicIndex); 
    }); 

Ogni volta che faccio clic su dynamicLink, restituisce "-1" come indice. Eventuali suggerimenti?

risposta

7

Poiché live utilizza la delega eventi per "associare" eventi a elementi futuri, è necessario chiamare index in un elenco aggiornato di elementi. Prova questo:

$esl = $('.dynamicLink'); 
$esl.live('click',function(){ 
    var dynamicIndex = $('.dynamicLink').index(this); 
    alert(dynamicIndex); 
}); 
Problemi correlati