javascript - jqクリックイベントの繰り返し実行の問題
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-07-05 10:38:45
0
9
1052

ヘルプ、jq によって動的に生成された要素を有効にするには、クリック イベントにバインドする必要があり、実行される関数にもクリック イベントがあり、関数が 2 回実行されます。この状況を解決するにはどうすればよいですか?

曾经蜡笔没有小新
曾经蜡笔没有小新

全員に返信(9)
漂亮男人

イベントオブジェクトを使用して、実際にクリックしたいターゲットを見つけます

いいねを押す +0
曾经蜡笔没有小新

実際には、イベントが 2 回バインドされているか、イベントがバブリングしているだけです
1. イベントをバインド解除してから再度バインドします。 リーリー

2、バブリングをキャンセル

リーリー

いいねを押す +0
某草草

最初に監視を削除してから、
.off(handler).on(handler)を監視します

いいねを押す +0
Peter_Zhu

これは泡立っていますか?

いいねを押す +0
typecho

off 最初にバインドを解除してからバインドします

いいねを押す +0
滿天的星座

リーリー

いいねを押す +0
过去多啦不再A梦

リーリー

いいねを押す +0
Peter_Zhu

上記の人がそれをより明確にしました。
1. 問題が見つかりました
動的に生成された要素がイベントにバインドされているため、1.1 は 2 回バインドされていますが、このイベントでは、以前にバインドされたイベントが再度呼び出されます

リーリー

1.2 やはりイベントのバブリングが原因です (バブリングに慣れていない場合は、最初に関連情報をお読みください)

リーリー

2. 動的に生成された要素は、必ずしも動的バインディング イベントを使用する必要はありません

delegate() メソッドを使用するイベント ハンドラーは、現在または将来の要素 (スクリプトによって作成された新しい要素など) で動作します。
ここをクリックして詳細なドキュメントを表示します: http://www.w3school.com.cn/jq...

リーリー
いいねを押す +0
phpcn_u1582

on() の後に忘れずに off() をオフにしてください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート