我有一个有 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/
如何才能使这项工作按预期进行?
最佳答案
问题出在我的 jquery 处理切换的编写方式上。由于表单本身是动态的,我必须像这样更改行:
$('#oaSpanLinkNative').click(function () {
到
$(document).on('click', '#oaSpanLinkNative', function () {
这里的前两个答案解释了其工作的原因:
关于DOM 更改后 jQuery 无法处理动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845776/