jquery добавить li в конец ul, но последний созданный li не распознан как последний - PullRequest
2 голосов
/ 15 февраля 2010

У меня есть следующий код.Нажав кнопку на последнем li, я могу создать новый li.Однако после создания, если я нажму на последнюю созданную кнопку, будет создан новый li.Кажется, он не распознает последний созданный li как последний li.Может кто-нибудь помочь в этом, пожалуйста.

<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 ]

3 голосов
/ 15 февраля 2010

Вам нужно использовать live вместо bind, так как связывание повторяет элементы только один раз , однако live создает слушатель , который динамически присоединяет события, даже к новым созданные элементы.

Ваш код должен соответствовать этому образцу:

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

протестировано с jQuery 1.4.0

0 голосов
/ 15 февраля 2010

Вместо:

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

Попробуйте

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