Javascript 如何让jquery正确地重用通过AJAX重新加载的元素标识?

Javascript 如何让jquery正确地重用通过AJAX重新加载的元素标识?,javascript,jquery,ajax,jquery-ui,Javascript,Jquery,Ajax,Jquery Ui,我不确定我是否正确诊断了这个问题 我有一个jquery对话框,弹出另一个jquery对话框。当我弹出内部对话框时 一旦一切似乎都正常了。当我关闭两个对话并重新打开它们时,屏幕上的“保存”按钮 内部对话无法正常工作——特别是它无法关闭对话 我认为正在发生的事情是:第二次重新加载第二次对话的内容 通过AJAX使用与第一次相同的DOM id,当jquery试图关闭对话时 它试图关闭不再存在(或至少不可见)的“旧”对话 我说得对吗?如果是这样,如何让jquery忘记旧元素并使用新元素 如果您想亲自查看问

我不确定我是否正确诊断了这个问题

我有一个jquery对话框,弹出另一个jquery对话框。当我弹出内部对话框时 一旦一切似乎都正常了。当我关闭两个对话并重新打开它们时,屏幕上的“保存”按钮 内部对话无法正常工作——特别是它无法关闭对话

我认为正在发生的事情是:第二次重新加载第二次对话的内容 通过AJAX使用与第一次相同的DOM id,当jquery试图关闭对话时 它试图关闭不再存在(或至少不可见)的“旧”对话

我说得对吗?如果是这样,如何让jquery忘记旧元素并使用新元素

如果您想亲自查看问题,请执行以下操作:

  • 单击第一个“更改问题”按钮。应该显示第一个对话框
  • 单击“html”伪链接。应该显示第二个对话框
  • 在内部对话框中单击“保存”。内部对话框应该关闭
  • 在第一个对话框中单击“更改”。第一个对话框应该关闭
  • 现在重复步骤2、3、4,注意在步骤4,内部对话框不会关闭

  • 我将停止尝试修复此问题一段时间,以便步骤将工作相同。。。提前谢谢

    查看
    live()
    事件处理程序。这将确保元素在被销毁或重新创建后仍会激发事件

    使用类似以下内容:

    $(button).live('click', function() {
       $(form).save(); //save the form
       $(menu).close(); //close the menu
    });
    

    您给了我们一个localhost链接…如何声明事件单击保存按钮?对于使用.click()的jQuery,Cesar:按钮声明如下:$(“#popDiv_FullTargetInput”).dialog({autoOpen:false,按钮:{“save”:onSave_FullTargetInput},minWidth:300,width:800});好吧,我不知道如何解决这个问题,但我发现一个解决办法是始终使用新名称来命名通过ajax加载的元素。当我这样做时,问题就消失了。这是注释,但我想我可以接受。我被这个答案弄糊涂了。我不知道如何识别按钮,因为它是由jQueryUI创建的,比如$(“#popDiv_FullTargetInput”)。对话框({autoOpen:false,按钮:{“save”:onSave_FullTargetInput},minWidth:300,width:800});--不过,我将查看live事件处理程序,看看是否可以找到它。