3

シナリオは次の
とおりです。ThickBox は、オートコンプリートをサポートする一連の入力を含む Ajax コンテンツ (div ベースのフォーム) を使用して、(ボタンが押されたときに) 親ウィンドウから開かれます。ThickBox(form) を閉じたら、入力値を親ウィンドウに渡す必要があります。

質問:
ThickBox のコンテンツは動的に読み込まれるため、jQuery ($(ThickBox).ready.. のようなもの) で ThickBox コンテンツを操作するための最初のコールバックを持つ正しい方法は何ですか?

4

2 に答える 2

3

私が好むオプションは、 jqModalなどの他のモーダル プラグイン オプションを調査することです。これにより、利用できる onShow および onHide イベント フックが公開されます。

Thickbox は古さを示しています。観察できる「表示」イベントは公開されていません。もしあなたがthickboxを使いたがっているなら、いくつかの選択肢があります。

1 つのオプションは、jQuery が公開するグローバル ajax イベント (例: $.ajaxSuccess event )を使用することです。これは、thickbox が表示するデータの要求に成功したときに発生します。ただし、この時点では、thickbox はデータをモーダルに追加していない可能性があるため、これを試す必要があります。

例えば

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

このイベントは、ページ内で発生するすべての ajax イベントの完了時に発生することに注意してください。そのため、追加のチェックが必要になる場合があります。

もう 1 つのオプションは、thickbox スクリプトを変更し、独自のコールバック コードを追加して、モーダルが表示されたときに呼び出される関数を渡すことです。

于 2008-12-21T15:14:36.793 に答える
-1

LiveQueryプラグインを使用できます。このプラグインは、DOM の変更をインターセプトし、DOM を読み取る他のプラグインを自動的に再バインドします。

于 2009-03-03T19:07:37.587 に答える