2011-07-23 12 views
8

私は.live("click")jQueryの.live()はどのように機能しますか?

.click()に関するパフォーマンスについて考えていた、それは.liveが作業を行う方法について疑問に私を残しました。

DOMの変更を監視していて、DOMの変更を検出したときだけイベントをアタッチします。何らかのタイマーを使用しています(これは大したことではありませんが、あなたが動的にDOMに要素を追加し、あなたがlivedelegateを使用する必要がありますが、あなたは、単にclickを使用していない場合はクリックハンドラは、それらにatachedしたい場合)私は悲しい人

+0

これは役立つかもしれない:http://paulirish.com/2010/on-jquery-live/ – Gaurav

+0

これをチェックしてください。 http://james.padolsey.com/jquery/#v=1.6.2&fn=jQuery.fn.liveタイマーなし – naveen

答えて

0

を作ります

+3

私は、OPがそれぞれを使用するときに理解していると思うが、彼は単に「ライブ」の実装について興味がある –

2

.liveすべてのユーザーにイベントを添付しません。 DOMが変更された場合でもdom内の要素。本体またはライブが添付されているコンテナのようなルート要素にイベントをリッスンします。内部レベル要素のイベントがトリガーされると、ターゲットをチェックし、ライブで指定されたセレクターと一致し、一致する場合はそのイベントを発生させます。 .live()上のjQueryのマニュアルから

2

.live()メソッドは、まだ がイベントの委任を使用してDOMに追加されていない要素に影響することができます:ハンドラがに をバインドします祖先要素は、その子孫である でトリガーされるイベントを処理します。 .live()に渡されたハンドラは決して 要素にバインドされません。代わりに、.live()は特別なハンドラを DOMツリーのルートにバインドします。

ご覧のとおり、タイマーはありません。

関連する問題