我试图编写待办事项列表表单。此表单可以包含无限行。每行包含一个文本输入字段,旁边有2个按钮。 1个按钮在下面添加一个新行,第二个按钮删除该行。jquery删除所有附加元素
问题是,当我点击添加按钮一堆,它删除所有添加到它下面的元素,当我点击该行的删除图标。
我希望我有道理,也许代码会解释发生了什么。
继承人的待办事项列表表单页面的PHP代码:
<div class="table table-todo">
<?php include 'projects-add-task.php'; ?>
</div>
这里是projects-add-task.php
内容:
<div class="field">
<input type="text" name="task[]" />
<a href="#" title="Add Task Below" class="todo-add"><img src="images/icon-todo-add.png" alt="" onmouseover="this.src='images/icon-todo-add-h.png'" onmouseout="this.src='images/icon-todo-add.png'" /></a>
<?php if ($_GET['show_delete'] == 'yes') { ?>
<a href="#" title="Delete This Task" class="todo-delete"><img src="images/icon-todo-delete.png" alt="" onmouseover="this.src='images/icon-todo-delete-h.png'" onmouseout="this.src='images/icon-todo-delete.png'" /></a>
<?php } ?>
<div style="clear: both;"></div>
</div>
下面是心不是工作100%正确的jQuery:
$('.todo-add').live('click', function (e) {
e.preventDefault();
$parent = $(this).parent('.field');
$.get('projects-add-task.php?show_delete=yes', function (data) { $parent.append(data); }, 'html');
});
$('.todo-delete').live('click', function (e) {
e.preventDefault();
$(this).parent('.field').remove();
});
我不得不使用live
作为.todo-add
图标,因为它对于新添加的行不是很明显。然而im不确定这是否对.todo-delete
图标是必要的,但我确实这样做了。
任何帮助将不胜感激这个问题。
尝试使用'on',不起作用。 “live”运行良好,“after”功能起到了魅力。 – scarhand
也许你使用的是旧版本的jQuery,无论如何你得到你需要的:) –