ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery でデリゲートの代わりに on を使用することと live を使用することの違いの詳細な説明

jQuery でデリゲートの代わりに on を使用することと live を使用することの違いの詳細な説明

黄舟
リリース: 2017-06-26 10:04:22
オリジナル
1212 人が閲覧しました

初期の頃は、後からページに読み込まれる動的要素にイベントや値を割り当てる場合、効率が低いためライブが使用されていました(実際にはデータがあまりなく、目立たなかった)。その後、1.7 以降では、デリゲートの代わりに on が使用されますが、記述上は異なります。たとえば、ボタン:


ページ:

<div id="panel">   
      <input type="button" name="name"  value="clone"class="btnAdd" />
</div>
ログイン後にコピー

スクリプト:

のいずれかをクリックします。 1.1 live

jQuery version 1.3+ を使用する

$(&#39;.btnAdd&#39;).live(&#39;click&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
ログイン後にコピー

1.2 #panel などのスコープを与えずに直接 on に変更する これは、最初にページにあった button に対して有効です。 は live

$(&#39;.btnAdd&#39;).on(&#39;click&#39;, function () {    
$(this).clone().appendTo(&#39;#panel&#39;);
});
ログイン後にコピー


を直接置き換えることはできません。 2. デリゲートを使用するには、#panel などの範囲のみを指定する必要があります。これにより、内部を検索できます。ライブ

jQuery バージョン 1.4.3+


$(&#39;#panel&#39;).delegate(&#39;.btnAdd&#39;, &#39;click&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
ログイン後にコピー


3.使用on 给它一个范围才行,如#panel,让它到里面找. 这样可以实现live和delegate一样的效果.

里面的'click', '.btnAdd'跟上面的delegate是相反的.只要记住on click是挨在一起的就行了.

jQuery版本1.7+

$(&#39;#panel&#39;).on(&#39;click&#39;, &#39;.btnAdd&#39;, function () {
    $(this).clone().appendTo(&#39;#panel&#39;);
});
ログイン後にコピー

以上がjQuery でデリゲートの代わりに on を使用することと live を使用することの違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート