DOM更改后,jQuery无法处理动态内容

时间:2015-09-29 13:51:34

标签: jquery ajax

我有一个包含2个版本的网络表单。加载页面时,默认版本(让我们称之为版本1)显示在div <div id="oAuthPanel">内。

在这些表单本身(两个版本中)中,有一对单选按钮,包含在<span>标签中,用于通过jQuery + Ajax切换表单版本。

当用户点击第二个单选按钮(或围绕它的<span>标记内的任何位置)时,某些jQuery会捕获点击并通过.load()检索表单的第2版。表单的第2版现在应该是div <div id="oAuthPanel">内的内容。如果用户单击第一个单选按钮,jQuery应该再次检索表单的版本1。

但是,切换工作不顺畅。第一次加载页面后,表单的第二个版本加载正常(通过单击第二个单选按钮)。但是,如果我先点击该单选按钮。但在那之后,当我点击第一个单选按钮等时,它不会回复。

这是jsFiddle给出代码的概念(但它在开发框上,所以ajax部分不起作用)。

https://jsfiddle.net/robarwebservices/6xkoy7bz/1/

如何按预期完成此工作?

1 个答案:

答案 0 :(得分:3)

问题在于我的jquery是为处理切换而编写的。由于表单本身是动态的,我不得不改变这样的行:

$('#oaSpanLinkNative').click(function () {

$(document).on('click', '#oaSpanLinkNative', function () {

这个工作的原因在这里的前两个答案中解释了:

Jquery function doesn't work after Ajax call