我想知道为什么在下面的示例中,尝试detach一个元素(li)会导致包含它的form到submit
html
<form id="frmToDo" name="frmToDo">
<p id="lineInput">
...
<input type="submit" id="btnSubmit" value="Add" />
</p>
<ul id="todolist">
<!-- added in ajax -->
</ul>
</form>JS
$("#frmToDo").submit(function() {
// this runs after: $("#todolist").detach(...)
});
$("#todolist").delegate("li[id^=task-] button", "click", function() {
$("#todolist").detach($($(this).parent()).id());
return false;
});发布于 2010-05-31 15:58:17
我想您只是想删除单击按钮的li元素。
所以不要用
$("#todolist").delegate("li[id^=task-] button", "click", function() {
$("#todolist").detach($($(this).parent()).id());
return false;
});试着使用
$("#todolist").delegate("li[id^=task-] button", "click", function() {
$(this).parent().detach();
return false;
});发布于 2010-05-31 15:38:36
那不是一个按钮,而是一个输入元素。
$("#todolist").delegate("li[id^=task-] input:submit", "click", function() {发布于 2010-05-31 15:44:09
我不确定这是否是造成问题的原因,但如果您的目的是分离一个detach元素,则没有正确地使用li函数。detach函数的参数是一个选择器表达式,它过滤正在调用函数的jQuery元素中的匹配元素集。在您的代码中,您将调用detach on $('#todolist'),这意味着如果todolist元素与传递的参数匹配,则需要分离它。
你应该这样做,而不是:
$('#todolist li').detach(); //this will detach all the li elements我不确定这是否能解释你的表格提交的事实。如果不是:什么事件触发表单的提交事件?也许您使用放置在表单中并触发表单提交的按钮或输入元素?
https://stackoverflow.com/questions/2944462
复制相似问题