-3

私のjavascriptコード(長すぎるので、ここに置くことはできません)では、次のように関数が複数回呼び出されています:

 $("#button").bind({ click : Call }); // bind the Call with button click event

 function Call()
 {
   alert("This message shows me more than once when i clicked the button");
 }

この警告メッセージが複数回表示される場合は、関数Call()が複数回呼び出されていることを意味します。私のコードで何が起こっているのか、誰か推測または教えてもらえますか? (私にコードを聞かないでください)

4

3 に答える 3

1

「Call」が呼び出される回数だけ、イベントハンドラーをボタンにフックしています。テンプレートや部分ファイルなどにこのコードはありますか?

于 2012-05-27T06:14:49.810 に答える
1

私のために働く:http://jsfiddle.net/aC8Bm/

どこかで複数回バインドしていると思います。

また、Call 関数から false を返すか、イベントの伝播を停止することをお勧めします。

もう 1 つ: 大文字を使用して関数に名前を付けることは避けてください。これは、慣例によりコンストラクター関数用に予約されています。

于 2012-05-27T06:11:32.670 に答える
0

関数内でこれを行う代わりに:

$("#button").bind({ click : Call });

次のものを屋外のどこかに配置します。

$("#button").live("click", Call);

既存およびこれまでに追加されたすべての #button に対して一度バインドします

于 2012-05-27T06:35:14.703 に答える