1

単一ページの 2 つ以上DIVの内部に動的に含まれるテンプレート ファイルがあります。div は次のようになります。

EDIT div はdisplay none、VIEW div が表示され、反転している間です。そのため、一度に表示できるのは 1 つだけです。

テンプレート ファイルには以下の JavaScript が含まれています。

   AJS.$(document).on('click', '#addROW', function()
   {
      console.log('calling');
      ....
      ..
   }

今、addボタンをクリックすると(テンプレートファイルに存在します)、上記のイベントが実行され、単一の行を追加してログメッセージを出力する必要がありますが、二重に実行されるため、最初は2回実行されます(2つの画面に含まれるテンプレートとして)メッセージ「calling」を2回出力し、しばらくすると、2倍になり、4回実行されます。1回だけ実行され、「calling」メッセージが1回だけ出力されるはずです。

この問題を解決するにはどうすればよいですか。

javascript が複数回追加されているように見えますが、ページに 1 回追加するか、この問題を解決する他の方法を制御するにはどうすればよいですか?

ありがとうございました

4

2 に答える 2

2

新しいイベントの割り当てに対してスクリプトが設定されているかどうかを確認できます。

AJS.$(document).on('click', '#addROW', function (event) {
    if (event.handled !== true) {
        //put your code here
        event.handled = true;
    }
    return false;
}
于 2013-07-13T06:02:08.597 に答える
1

これを試して

AJS.$(document).on('click', '#addROW', function(event)
{
  event.stopPropagation();
  console.log('calling');
  ....
  ..
}
于 2013-07-13T05:55:12.443 に答える