jQueryに少し問題があります .live
方法。 ウェブサイトでGoogleアナリティクスのAjaxイベントをキャッチするために使用していますが、内側の画像とのリンクがある場合、クリックイベントは画像から起動され、ライブバインドクリックイベントはそれをキャッチしません。
これらのイベントを手動で追加するのは本当に好きではありません毎回コンテンツを変更した後、画像にバインドするのは好きではありません(hrefパラメータがないため、この場合は.parentメソッドを使用していました)ので、これを処理する最良の方法は何ですか?
通知:の効率についてはわかりません。ライブメソッドなので、パフォーマンスに大きな違いがある場合は、次のように伝えてください。
回答:
回答№1は0ただ置くだけ click(function(event) { ... })
静的な親要素のハンドラ、およびイベントを開始した要素を見つける event.target
.
回答№2の場合は0
あなたが持っていると仮定 a
を含む img
、上のイベント img
にバブルする必要があります a
、それをキャッチします。
回答№3の場合は0
.delegate()メソッド(http://api.jquery.com/delegate/)
.live()とdelegate()に関する詳細情報を以下に示します。
- http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery
- http://www.youtube.com/watch?v=23Q4S9hmHQY
- jQuery:live()vs delegate() [stackoverflow.com]
更新:
Jupiter 24による「jQueryをライブで使用しない理由」についての投稿は次のとおりです。