2012-01-22 16 views
0

私は意味に関して質問があります。.on ('event', fn)を使ってノードにjQueryイベントを結び付けることができます。例えば、$node.on('click', fn)は意味があり、使用するよりも意味があります。$node.click (fn)jqueryの意味

+0

私はセマンティクスについてはあまり心配しません。このイベントでは、同じことをします:クリックを$ node要素にバインドします。この場合、両方の要素が動的に追加された要素を処理すると思います(ただし、動的に追加された要素は ' $ node'セレクタ、それが何であれ)。 –

+0

ですが、質問はそれほど正確ではないと私は思うからです。クリックはのためのラッパーです。 ( "クリック")またはその逆に..これは私の質問です。 –

答えて

1

使用.onは.click使用して、または古いイベントAPIその後、はるかに優れています。 jQueryの自身の、について説明:http://blog.jquery.com/2011/11/03/jquery-1-7-released/

あなたは1000のリスト項目のリストを持っていると

$('li').click(function() { 
    console.log('clicked'); 
}); 

のようなコードを実行する場合は、次に、各単一のリスト項目は、このeventcallbackfunctionを取得します。

しかし、あなたは

$('ul').on('click', 'li', function() { 
    console.log('clicked'); 
}); 

を使用している場合今だけ<ul>はeventcallbackfunctionを取得しますが、あなたは、UL jQueryのフィルタをクリックすると、あなたは、Liをクリックしたかどうかを見るため、コールバックを取得する場合、もしされていない場合あなたはコールバックを取得しません。

+1

ポイントがありません。 '$ node.on( 'click'、fn)'はイベント委任を使用しません。オーバーロードされているので、この混乱が私が '.delegate/.bind'を好む理由です。 – Esailija

+0

完璧に!ありがとう..私は読むよ。 –

+0

私は、この質問はイベントの委任と各要素のハンドラ(これはあまり考えられないbtwではない)、 '.click(fn)'の短縮形と.on( "クリック" 、fn) 'である。のように、まったく同じ機能ですが、明らかに異なるセマンティクスです。 – Esailija

0

あなたの例では、bind()は理想的です(意味論的な意味では理想的です)。それはまた、それに交換可能な意味を持って、私は方向リスナーまたはスクロールオブザーバをバインドすることができます。 には(すぐに何かを開始したり、すぐに起動する)という意味があります。

http://api.jquery.com/bind/