Как найти все диалоги в JQuery - PullRequest
6 голосов
/ 12 марта 2011

Я пытаюсь привязать событие ко всем диалоговым окнам, которые были созданы на странице с помощью функции диалога JQuery UI (независимо от того, были они отображены или нет). Я не могу понять, селектор, который доставит меня туда. Я пробовал оба .ui-dialog и .ui-dialog-content безуспешно.

Поскольку я пытаюсь создать универсальный метод, я не буду знать идентификаторы диалогов, которые могли быть созданы.

Я использую следующий код для проверки. Это сработает, если я укажу идентификатор диалога (#mydialog), но в производстве я не буду знать их.

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

Ответы [ 2 ]

7 голосов
/ 13 марта 2011

У ваших диалогов есть общий класс, с помощью которого вы можете выбрать их?Если у них всех есть класс "ui-dialog", то это будет работать:

$(".ui-dialog")

Ваш пример

$("div.ui-dialog")

Просит выбрать все div с классом ui-dialog, который, вероятно, также должен работать, пока класс задан для элемента div.

Ваша проблема может заключаться в том, что вы связываете элементы диалога до того, как они существуют?Вместо этого может потребоваться функция .live (), чтобы она связывалась с любыми диалоговыми окнами, созданными в любой точке, а не только с теми, которые существуют при вызове функции.

Поможет опубликовать фрагмент HTML.

2 голосов
/ 18 июля 2012

Вы можете использовать это:

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