Первоначальный обратный вызов для управления содержимым ThickBox с помощью jQuery - PullRequest
3 голосов
/ 21 декабря 2008

Вот сценарий:
ThickBox открывается из родительского окна (при нажатии кнопки) с содержимым Ajax (форма на основе div), которое содержит набор входов с поддержкой автозаполнения. После закрытия ThickBox (форма) входные значения должны быть переданы в родительское окно.

Вопрос:
Содержимое ThickBox загружается динамически, поэтому как правильно получить начальный обратный вызов для управления содержимым ThickBox с помощью jQuery (вроде $ (ThickBox) .ready ..)?

Ответы [ 2 ]

3 голосов
/ 21 декабря 2008

Мой предпочтительный вариант - изучить другие варианты модальных плагинов, такие как jqModal . Это предоставляет доступ к перехватчикам событий onShow и onHide, которые вы можете использовать.

Thickbox показывает свой возраст, он не отображает никаких «выставочных» событий, которые вы можете наблюдать. Если вы одержимы использованием Thickbox, у вас есть несколько вариантов.

Один из вариантов - использовать глобальные события ajax, которые предоставляет jQuery, например, $. Событие ajaxSuccess . Это сработает, когда Thickbox успешно запросит данные для отображения. Однако в этот момент Thickbox, возможно, не добавил данные в модальный режим, вам придется попробовать это.

1011 * например *

$.ajaxSuccess( function(evt, request, settings){
   //ajax method has completed
}); 

Имейте в виду, что это событие будет срабатывать по завершении каждого события ajax, которое происходит на вашей странице, поэтому вам могут потребоваться дополнительные проверки

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

0 голосов
/ 03 марта 2009

Вы можете использовать плагин LiveQuery . Этот плагин будет перехватывать изменения в DOM и автоматически связывать другие плагины, читая DOM

...