2

我有以下代码。单击最后一个 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>
4

2 回答 2

3

您需要使用live而不是bind作为绑定仅迭代元素一次,但是live创建一个侦听器,它动态地附加事件,甚至是新创建的元素。

您的代码应符合此示例:

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

jQuery 1.4.0

于 2010-02-15T11:42:03.740 回答
0

代替:

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

尝试

 $("#mylist").append('<li>'.........
于 2010-02-15T11:25:48.417 回答