live:イベントハンドラを設定する新しい方法

画像 ご存知のように 、最近jQuery 1.3のベータ版をリリースしました。 未加工ですが、テストされており、まだ不快なバグが残っています。 しかし、イノベーションに慣れることは価値があり、そのうちの1つについて簡単に説明したいと思います。



live関数はbind関数の類似物であり、構文と本質は同じですが、それらの間には1つの大きな違いがあります。これは次の例で最もよく示されています。



デモをお試しください 。 カットの下の説明。





この例では、2セットのボタンがあり、最初のボタンを押すと、バインドを介して割り当てられた機能によって処理され、2番目のボタンを押すと、ライブを介して処理されます。

ボタンを動的に追加する場合、主な違いを確認できます。最初のセットでは、新しいボタンはハンドラーを受け取りません。2番目のセットでは、新しいボタンごとにハンドラーが自動的に追加されます。



そして、コードの違いはわずかですが:

$( "input.test" ).bind( "click" , function () {

alert( "hello base input!" );

});

$( 'input.lcmd' ).live( "click" , function () {

alert( "hello live input!" );

});



* This source code was highlighted with Source Code Highlighter .






実際、大きな違いがあります。



PS:以前は、 このプラグインを介して同様の機能を取得できました。



PPS:テスト中に、1.3がまだチーズであることを示すバグに遭遇しました。

複雑なセレクター$( '#lblock input.lcmd')。live(...を指定すると、ハンドラーはまったくハングせず、さらにバインドに変更してもすべて正常に動作します。将来のバージョンで修正を待っています。



PPPS:しかし、$( 'input.lcmd'、$( '#lblock'))。Live(...は動作しますが、一般的には驚くことではありません



All Articles