2010-02-15 4 views
2

J'ai le code suivant. En cliquant sur le bouton sur le dernier li, je peux créer le nouveau li. Cependant, une fois créé, si je clique sur le dernier bouton créé, le nouveau li est créé. Il semble qu'il ne reconnaît pas le dernier li créé comme le dernier li. Quelqu'un peut-il aider à ce s'il vous plaît.jquery ajouter li à la fin de ul mais last créé li pas reconnu comme dernier

<html xmlns="http://www.w3.org/1999/xhtml" > 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#mylist :button").click(function() { 
        var text = $(this).val(); 
        if (text == "Save") { 
        } 
       }); 

       $("#mylist li:last-child").click(function() { 
       $(this).parent().append('<li>' + '<input type = "textbox">' + '<input type = "button" value= "Save">' + '</li>'); 

       }); 

      }); 

     </script> 

<div> 
<ul id="mylist"> 
<li id="1">1<button id="Button3">Delete</button> </li>  
<li id="2">2<button id="Button2">Delete</button></li> 
<li id="3">3<button id="another_entry">Save</button></li> 
</ul> 

<ul id="mylist2"> 
<li> test1 <button id="Button6">Delete</button></li> 
<li> test2<button id="Button5">Delete</button> </li> 
<li id="6"><button id="Button1">Delete</button></li> 
</ul> 


</div> 
+2

Je serais plus enclin à essayer de trouver ce que sur la terre que vous essayez d'atteindre ici si vous avez déjà accepté réponses à vos questions. –

+0

Personne ne voudrait vous aider si vous ne récompensez même pas celui qui répond ... C'est aussi simple que de cliquer sur le chèque à droite sur la page de votre question. – Reigel

+0

Aussi voter n'est pas si difficile .. C'est notre temps, que vous utilisez, comme un signe d'appréciation, il n'y a cette flèche vers le haut .. :-D –

Répondre

3

Vous devez utiliser live au lieu de bind comme éléments de itère lient une seule fois, mais live crée un écouteur , qui se fixe des événements de manière dynamique, même à des éléments nouvellement créés.

code Vous doit être conforme à cet exemple:

$("#mylist li:last-child") 
    .live('click', function() { 
     // append element 
    }); 

testé avec jQuery 1.4.0

0

Au lieu de:

$(this).parent().append('<li>'......... 

Essayez

$("#mylist").append('<li>'......... 
+0

cela ne va pas aider, comme OP déclaré, le premier clic est fonctionnel , mais la seconde n'est pas ... donc il n'y a aucun problème à référencer l'élément 'parent' –