2012-08-26 2 views
6

私はちょうどlive()がjQueryで廃止されていることに気付きました。私はすぐに質問があります(どの方法が最も効率的で、最速で最新のものかを確認するだけです)。私はmyfunction()を持っていて、私はattr("title") == 'x'ですべての現在および将来の要素にbind()したいです。現在および将来のすべての要素にjQueryイベントを追加するにはどうすればよいですか?

は、私が使うべきか、このです:

jQuery("???").bind("mouseup", myfunction); 
jQuery("???").bind("keyup", myfunction); 

またはこの:

jQuery("???").delegate("???", "mouseup", myfunction); 
jQuery("???").delegate("???", "keyup", myfunction); 

またはこの:

jQuery("???").on("mouseup", "???", myfunction); 
jQuery("???").on("keyup", "???", myfunction); 

私も正しい選択(複数可)を指定し、問題を抱えています - それらのうちのいくつかはイベントを1つのもの(本文や文書のようなもの)に添付することができ、それらは第2のセレクタを許可するためです。

答えて

9

利用代わり.on()、:

グッド
$(document).on('mouseup', '[title="x"]', myfunction); 
+0

ありがとう!それは私が探しているものです:)私は質問がすでに答えられていると思います。 – Atadj

+0

@Paul:セレクタ '[title =" x "]'にマッチする要素に共通の親がある場合は、 '$("#id_of_common_parent ")'で '$(document)'を置き換えますもっと効率的。 –

+0

ありがとう!最後の1つ - 「Title」と「contentEditable」の代わりに「contentEditable」を使用する場合は、(1) 'contentEditable =" contentEditable "、(2)' contentEditable = "true" 'または単に' contentEditable '。これらは 'true 'とマークする3つの属性です。' title = "x"の場合、ただ1つの可能性があります。それは私が必要とする2番目のケースです。 – Atadj

6

.live()を置き換える構文は次のようなものです:attribute equals selector

$('#parent').on('keyup mouseup', '.children', myfunction); 
+0

私はこれを使用して2つのイベントを混在させることができることを知っています。ありがとう!私はセレクタが何になるのだろうと思っています。なぜ、 'live()'は効率的ではないと書いていたのですか? 'on()'と同じですか? – Atadj

+0

そのメソッドのAPIページに '.live()'の問題のリストがあります:http://api.jquery.com/live/ – Blender

関連する問題