1

dom要素にクリック偶数ハンドラーがあります。

jQcurrentOption.click(function () {
 //IMPLEMENTATION
});

この要素が複製さ.cloneNode(true)れると、イベントハンドラーが失われます:(。jQueryを変更できることはわかっています(したがってlivebind(1.7+)ではなく1.4.4を使用していることに注意してください)

jQcurrentOption.live("click",function(){
 //IMPLEMENTATION
});

liveただし、 (または)で定義せずにこれらのハンドラーを保持する方法があるかどうか興味がありましたbind。jQueryを使用して適用するメリットがない場合がありますlive

4

1 に答える 1

2

jQueryを試しましたclone()か?

var $clone = jQcurrentOption.clone(true);

引数として渡すと、イベント ハンドラーのクローンが作成trueされます。


それとは別に、jQuery 1.4.4 は をサポートしておりdelegate()、これは 1.7 のものと同等ですon()

$("select").delegate("option.current", "click", function () {
 //IMPLEMENTATION
});

このようにして、個々の要素がイベント ハンドラーをコピーする必要がなくなります。


要点:delegate()は 1.7 の時点で非推奨ですが、実際にはより新しい と同じものでありon()、唯一の違いは引数の順序です。現在の実装 (1.7.2) は次のとおりです。

delegate: function( selector, types, data, fn ) {
  return this.on( types, selector, data, fn );
} 
于 2012-05-08T23:00:47.163 に答える