6

- のどれを知りたいだけでclick()、現在、ユーザーのマウスクリックをキャッチするための推奨される方法はありますかlive()?on()

live()これはDOMの大部分をスキャンすると信じているので、アウトだと思います。

ありがとうございました。

4

5 に答える 5

4

jquery ドキュメントから:

jQuery 1.7 以降、.live() メソッドは非推奨になりました。.on() を使用して、イベント ハンドラーをアタッチします。古いバージョンの jQuery のユーザーは、.live() よりも .delegate() を使用する必要があります。このメソッドは、デリゲートされたイベント ハンドラーをページのドキュメント要素にアタッチする手段を提供します。これにより、コンテンツがページに動的に追加されるときのイベント ハンドラーの使用が簡素化されます。詳細については、.on() メソッドの直接イベントと委任イベントの説明を参照してください。

.on() メソッドは、jQuery オブジェクトで現在選択されている要素のセットにイベント ハンドラーをアタッチします。jQuery 1.7 以降、.on() メソッドは、イベント ハンドラーをアタッチするために必要なすべての機能を提供します。

For earlier versions, the .bind() method is used for attaching an event handler directly to elements.

TLDR: 常に使用しon()、決して使用しないlive()

于 2013-06-12T04:19:19.637 に答える
2

ただし、jQuery 1.9 はライブ機能をサポートしていません。代わりに「on」を使用する必要があります。

于 2013-06-12T04:20:23.947 に答える
2

live().bind()メソッドは非推奨です。live()も削除されましたが、他の 2 つはまったく異なる 2 つのタイプのイベント ハンドラーです。

  1. .click()標準のイベントハンドラです

    .click(function() {
        //Applies to DOM already present
    });
    
  2. .on()イベント委任が必要な場合に使用されます。これは従来bind()delegate()

    .on('click', function() {
            //Delegates to each element is DOM as it manipulated or generated
    });
    
于 2013-06-12T04:18:10.510 に答える
2

TL;DR:live非推奨でbindあり、置き換えられています。任意のイベントをバインドするための推奨される方法であり、delegate問​​題はありませんが、少し制限されています。onclick

$(selector).live("click", ...)は 1.7 以降非推奨、1.9 以降 jQuery から削除、柔軟性がない (常に にバインドdocument)、非常に非効率的 (最初に要素を見つけてから選択を破棄し、代わりにセレクターを使用)、セレクターを jquery オブジェクトに格納する必要があり、一般的に悪いです。

$(document).on("click", selector, ...)は の文字通りの置き換えですliveが、欠点はありません。これは、jQuery の do-everything イベント バインディング関数です。どこにでも何でもバインドしたり、何かに委譲したりできます: $parent.on(events, [targetSelector,] handler). 一度に複数のイベントをバインドすることもできます:.on("keypress paste change", ...)

binddelegateは の年上のいとこですon。前者は委任できませんが、後者は委任する必要があります。それらは引数の順序も異なります-onそれを解決するためにここにあります。それらは によって置き換えられましたonが、廃止されていません (jQuery 1.10 の時点)。古いバージョンの jQuery (1.7 より前) を使用する必要がある場合は、そこにあります。それ以外の場合は、に固執しonます。現在の実装は単に にリダイレクトするだけonです。

clickmouseOverchangeおよびその他の多くは、 および の二重の義務のエイリアスとして機能ontriggerます。文字通り - それらの 1 つに分岐する以外に何もしません。それらのほとんどは黎明期から存在し、都合よく簡潔になっています。ただし、委任することはできず、対応するバインド解除メソッドはありません。を使用する場合はoff、 で補完すると見栄えがしonます。優れた特性の 1 つは、ブラウザー間の互換性が約束されていることです。または、少なくとも、クロスブラウザーのサポートの欠如を文書化する場所 (つまりload、画像用)。私の個人的な好みは、十分onな場合でも使用することです.click

于 2013-06-12T04:48:31.280 に答える
1

将来的には「マウスアップ」、「マウスダウン」などの別の方法に簡単に変更できるため、「オン」が推奨される方法です。

于 2013-06-12T04:20:18.170 に答える