0

シナリオは次のとおりです-コードなし(その方が簡単です):

  1. コンテンツ (スクリプトを含む) を含む div を読み込みます。
  2. スクリプトの 1 つは、JqueryUI モーダル ダイアログの初期化です。これは、スクリプトの後半でクリック イベントで「開かれます」...つまり、初期化と同時に開かれるわけではありません。
  3. クリック イベントは、フォームを持つこのモーダルを開きます。
  4. フォームを送信すると、ajax 呼び出しが行われます - データをデータベースに保存し、「.load」関数がその div 全体をリロードします - そのスクリプトのセットをもう一度読み込みます (モーダルの初期化を含む)

それから...

[編集]

初めてクリックしてモーダルとフォームを開くと、すべて問題ありません。その後の任意の時間 - フォームと ajax 呼び出しが複数回実行されます。

[/編集]

モーダルを再度初期化すると、クリック イベントが発生したときに 2 つのインスタンスが呼び出されることは明らかです。

スー..

初期化が再び行われないようにする方法はありますか (覚えておいてください - このコードを保持する div がリロードされています - はい、その div の外に配置しようとしました.. no go )。


$.one 関数の使用に関して私が試したことは次のとおりです。

$("body").one("load", function(e){
    $("#scheduleMessagePopupDiv").dialog({
       autoOpen: false,
       height: 450,
       width: 340,
       modal: true,
       resizeable: false,
       dragable: false
    });
    alert("hello");
});

機能しませんでした..アラートは発生しません...そして、どうやらダイアログは決して初期化されません。

4

1 に答える 1

0

$.one()関数http://api.jquery.com/one/を使用するだけでこれを解決できるように思えます

于 2012-10-03T00:47:16.090 に答える