我有一个数据表,按钮上点击某些值保存到数据库,而其他值被检索。我需要这个过程是连续的,但我只能在第一时间才能完成。jQuery ajax只能第一次工作
起初我使用.ajax()
和.replaceWith()
重写整个表,但因为这覆盖了DOM,所以它正在丢失与该表相关的事件。我不能使用.live()
,因为我使用的是stopPropagation()
而.live()
由于事件冒泡而不支持它。我基本上能够将点击事件重新绑定到.ajax()
回调中的表上,但第二次对按钮点击事件的调用却什么也没做。
我改变了代码使用.get()
为ajax和.html()
将结果放在表中(服务器端代码现在返回完整的表sans <table>
标签)。我不再需要重新绑定到表格的点击事件,但后续点击按钮仍然不起作用。
最后,我将其更改为,但具有相同(非)结果。
“无所事事”我的意思是,虽然ajax调用正在按预期返回新的HTML,但它并未应用于表格。我确定它与改变DOM有关,但我认为,因为我只是覆盖表格内容而不是表格对象本身,它应该工作。显然我错过了一些东西;它是什么?
编辑:
HTML:
<table id="table1" class="mytable">
<tr>
<td><span id="item1" class="myitem"></span></td>
<td><span id="item2" class="myitem"></span></td>
</tr>
</table>
<input id="Button1" type="button" value="Submit" />
的jQuery:
$("Button1").click(function() {
$("table1").load(
"data.aspx",
function(data) {
//...
}
);
});
这将是有帮助的一些代码片段,甚至一些源的例子,从之前与AJAX事件之后。你在这里有很多信息,很难跟踪你正在做什么。 – Shaded 2010-06-15 14:44:16
您解释了*“无所事事”我的意思是,虽然ajax调用正在按预期返回新的HTML,但它并未应用于表*,所以这意味着您的Ajax调用成功了,这是DOM操作或使用innerHTML失败。 – 2010-06-15 14:49:32
@Shaded:虽然问题最终并不是严格的jQuery,但我添加了一些我正在做的事情的示例代码。 – 2010-06-15 20:42:41