我在 jQuery UI 对话框和 AJAX 方面遇到了一个奇怪的错误。
这是过程:
- 单击链接 > 使用 AJAX 链接打开的 div。
- 在 AJAX div 中单击链接 > 使用另一个 AJAX 打开 jQuery UI 对话框。
- 单击 jQuery UI AJAX 对话框中的链接 > 使用 JavaScript 执行
alert()
消息。
现在我从一开始就执行相同的过程,一切正常,直到出现 alert()
消息阶段。
因此,如果我下次执行该过程,步骤 3 不起作用,并且我的控制台中不会出现任何错误。
第 2 步的代码(使用 AJAX 打开 jQuery UI 对话框):
function update_link(rel)
{
$("#update_link").dialog({
modal: false,
height: 370,
width: 900,
title: 'im title',
open: function () {
$(this).load("<?= site_url()?>/links/show_update?id="+rel+"&rand="+rand());
}
});
}
在步骤 3 中获取警报消息的代码(此代码位于 jQuery UI 对话框页面中):
$("#to_page_home").on("click", function (){
alert("im not work if you open me in AJAX again!");
});
如果我这样做而不是代码,它也不起作用:
<a href="#" id="to_page_home" onclick="alert('im not work if you open me in AJAX again!');">
谢谢大家,很抱歉我的英语不好。
最佳答案
您是否随时切换#to_page_home?如果该 ID 消失/重新出现,您的 on() 重新出现时将不会重新注册
看看Direct and Delegated events文档的部分。 。 。你可能需要这样的东西:
$("#parentContainer").on("click", "#to_page_home', function (){
alert("im not work if you open me in AJAX again!");
});
在这种情况下,ID为parentContainer的元素必须包含to_page_home的元素,并且必须永久位于页面上。
关于php - 带有 AJAX 的 jQuery UI 对话框第二次不运行单击功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833401/