ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery_jquery のライブ メソッドとバインド メソッドの違いを深く理解する

jQuery_jquery のライブ メソッドとバインド メソッドの違いを深く理解する

WBOY
WBOYオリジナル
2016-05-16 17:08:34977ブラウズ

jq を介してレイヤーとオブジェクトを追加する場合は、live() を使用する必要があることに注意してください。他のものは機能しません

live の欠点は、実行後にスペースが解放されないことです。bind() を使用しすぎると、

をクリックした後にスペースが解放されます。

違い 1:

ここをクリック

単純なクリック イベントをこの要素にバインドできます:

$('.clickme').bind('click', function() {
$('body').append('

別のターゲット
');
});

要素をクリックすると、警告ボックスがポップアップ表示されます。そして、この後にさらに別の要素が追加されたとします。

この新しい要素はセレクター「.clickme」にも一致しますが、この要素は .bind() を呼び出した後に追加されるため、この要素をクリックしても効果はありません。

.live() は、この状況に対するメソッドを提供します。次のようにクリック イベントをバインドすると:

$('.clickme').live('click', function() {

alert("ライブ ハンドラーが呼び出されました。");
});

次に、新しい要素を追加します:

$('body').append('

別のターゲット

');
次に、新しく追加された要素をクリックすると、引き続きイベント ハンドラー関数をトリガーできます。

違い 2: (1) jQuery 1.3 では、bind メソッドは任意の JavaScript イベントをバインドできますが、live メソッドは jQuery 1.3 の click、dblclick、keydown、keypress、keyup、mousedown、mousemove、mouseout、mouseover、および Mouseup のみをサポートします。 1、focus および blue イベントもサポートされています (focusin および focusout にマップされます。これらはより適切であり、バブルアップする可能性があります)。さらに、jQuery 1.4.1 では、ホバー (「mouseenter Mouseleave」にマッピング) もサポートされます。

(2) live() は、DOM トラバーサルで見つかった要素を完全にはサポートしません。代わりに、常にセレクターの直後に .live() メソッドを使用する必要があります。

(3) 要素がライブ メソッドを使用してイベントをバインドする場合、イベントの配信またはバブリングを防止したい場合は、関数で stopPropagation() を呼び出すだけではイベントの配信を防止できません。泡立つ

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。