如何在JQuery中查找所有对话框

时间:2011-03-12 19:58:15

标签: jquery-ui-dialog

我正在尝试将事件绑定到使用JQuery UI Dialog函数在页面上创建的所有对话框(无论它们是否已显示)。我似乎无法找出能让我在那里的选择器。我已经尝试了.ui-dialog.ui-dialog-content但没有成功。

由于我正在尝试制作通用方法,因此我不知道可能已创建的对话框的ID。

我正在使用以下代码进行测试。如果我指定对话框的id(#mydialog),它会起作用,但在生产中,我不会知道这些。

$("div.ui-dialog").bind("dialogclose", function(event, ui) {
  window.alert("close fired");
}

2 个答案:

答案 0 :(得分:7)

您的对话框是否有一个可以选择它们的公共类?如果他们都有“ui-dialog”类,那么这将有效:

$(".ui-dialog")

的例子
$("div.ui-dialog")

要求用一个ui对话框选择所有div,只要该类被赋予div元素,它应该也可以工作。

您的问题可能是在对话框元素存在之前绑定它们?您可能需要.live()函数,以便它绑定到在任何点创建的任何对话框,而不仅仅是调用函数时存在的对话框。

发布HTML代码段会有所帮助。

答案 1 :(得分:2)

您可以使用:

$(":ui-dialog").each(function(){
   "enter your code here"
})