我有以下代码。按下最后一个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>
答案 0 :(得分:3)
您需要使用live
代替bind
,因为绑定只会将元素重复,但live
会创建侦听器,它动态地附加事件,甚至是新创建的元素。
您的代码应符合此示例:
$("#mylist li:last-child")
.live('click', function() {
// append element
});
使用jQuery 1.4.0
答案 1 :(得分:0)
而不是:
$(this).parent().append('<li>'.........
尝试
$("#mylist").append('<li>'.........