jqueryのDelegateの機能について少し混乱しています。jQueryデリゲート
ピッカーと呼ばれる変数がある場合。
この変数には、 のdivが含まれています。このdivには、未知のスパンが含まれています。
私はすべての単一スパンでいくつかのクリックハンドラを設定することを検討していますピッカーディビジョン。
これを行う最善の方法を委任していますか?
もしそうなら、どうすればいいですか?
jqueryのDelegateの機能について少し混乱しています。jQueryデリゲート
ピッカーと呼ばれる変数がある場合。
この変数には、 のdivが含まれています。このdivには、未知のスパンが含まれています。
私はすべての単一スパンでいくつかのクリックハンドラを設定することを検討していますピッカーディビジョン。
これを行う最善の方法を委任していますか?
もしそうなら、どうすればいいですか?
だから私は仮定していピッカーは、このようなものになります。
var picker = $("div.someDiv");
をそして、あなたは.delegate()
を使用してdiv.someDiv
の子ノードであるすべてのspan
要素にハンドラをクリック添付する。ここで
は、私はそれについて移動したい方法は次のとおりです。ほとんどのDOMイベントバブル、または伝播するという事実を利用することによって
picker.delegate("span", "click", function(eventObj) {
// do what you want
});
.delegate()
作品。 .delegate()
は、この点に関して.live()
と非常に似ています。 .delegate()
が異なる場合は、ドキュメントルートにハンドラを追加するだけでなく、イベントが完全に泡立てられたときにハンドラを起動するのではなく、$()
に渡す要素にイベントを添付してから、バブルアップするイベントを監視しますその要素の子供たちから。
うん、あなたは好きなことを行うことができるはず:
picker.delegate("span", "click", function() {
// do something to $(this) here!
});
私はアレックスの回答を受け入れました。デリゲートの仕組みについての説明があります。 – Hailwood
恐ろしい答え、ありがとう – Hailwood