1

我对 jQuery UI 对话框和 AJAX 有一个奇怪的错误。

这是过程:

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

现在我从一开始就执行相同的过程,直到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!');">

谢谢大家,对不起我的英语不好。

4

1 回答 1

1

您是否随时切换#to_page_home?如果该 ID 消失/重新出现,您的 on() 在重新出现时不会重新注册

查看文档的Direct 和 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 的元素,并且必须永久位于页面上。

于 2012-08-06T18:00:06.880 回答