php - 带有 AJAX 的 jQuery UI 对话框第二次不运行单击功能

标签 php javascript jquery ajax jquery-ui

我在 jQuery UI 对话框和 AJAX 方面遇到了一个奇怪的错误。

这是过程:

  1. 单击链接 > 使用 AJAX 链接打开的 div。
  2. 在 AJAX div 中单击链接 > 使用另一个 AJAX 打开 jQuery UI 对话框。
  3. 单击 jQuery UI AJAX 对话框中的链接 > 使用 JavaScript 执行 alert() 消息。

现在我从一开始就执行相同的过程,一切正常,直到出现 alert() 消息阶段。 因此,如果我下次执行该过程,步骤 3 不起作用,并且我的控制台中不会出现任何错误。

enter image description here

第 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/

相关文章:

javascript - 使用 javascript 将内容添加到 html 元素中

javascript - 如何使用js更改超过阈值长度的文本颜色

javascript - 如果用户来自特定位置,则隐藏 javascript

php - Laravel session 立即过期 (Laravel 5.5)

php - 无法在codeigniter中自定义轮播 Bootstrap css

javascript - 在 Ruby on Rails 4.x 中正确嵌入 JavaScript 变量

javascript - for循环什么时候导致类型强制javascript?

javascript - JSON,数组推送功能不适用于变量定义的键

jquery - fadeToggle 使用切换功能

php - 如何在 Laravel 中返​​回静态文件?