1

重複の可能性:
jQuery 1.7-live()をon()に変える

私はjQueryを持っています:

          $(".house td[red]").live("click", function() {
              alert('ok');
          });

ただし、functionlive非推奨です。どうすれば使用できますか?

          $(".house td[red]").on("click", function() {
              alert('ok');
          });

動作していません。

4

8 に答える 8

4
 $(".house").on("click", 'td[red]', function() {
              alert('ok');
          });

これを試しましたか?詳細については、ドキュメントをチェックインできます。そこからの例:

$("#dataTable tbody").on("click", "tr", function(event){
    alert($(this).text());
});

したがって、基本的にラッパーの「コンテナ」を渡します。ライブが推奨されない理由は、次のような「on」構文で記述できるためです。

$(document).on("click", '.house td[red]', function() {
              alert('ok');
          });

あなたが見ることができるものはあまり効率的ではありません。おそらくそれ以上のものがあるでしょう:)それであなたがそれを変えたいのは良いことです。

于 2012-08-14T13:52:04.677 に答える
3

として使用してください-

$(document).on("click", ".house td[red]", function() {
  alert('ok');
});

より効率的な方法は.on()、要素の直接の親で使用することです-

$('.house').on("click", "td[red]", function() {
      alert('ok');
});

との違いをよりよく理解するためにここ読んでくださいliveon

于 2012-08-14T13:52:45.483 に答える
2

on()は、直接イベントと委任イベントの両方でさまざまな方法で機能できる、すべてのものからすべての人への機能です。live()委任されたイベントを達成する手段でした。これはon()、フィルターをパラメーター2として渡し、コールバックをパラメーター3にバンプすることで実現されます。

$(".house").on("click",  'td[red]', function() {
    alert('ok');
});
于 2012-08-14T13:53:01.727 に答える
1
$(".house td[red]").live("click", function() {
    alert('ok');
});

これに直接変換されます:

$(document).on("click", ".house td[red]", function() {
    alert('ok');
});

ただし、バインド時に存在することがわかっている最も近いコンテナを指定することで、ある程度のパフォーマンスを得ることができます。

$('#someContainer').on("click", ".house td[red]", function() {
    alert('ok');
});
于 2012-08-14T13:56:04.840 に答える
1
$(document).on('click', '.house td[red]', function(){
    alert('ok');
});

ドキュメントは、ハンドラーをアタッチする静的要素です。

最初のパラメータはイベントです

2番目のパラメーターはセレクターです

3番目のパラメーターは、イベントが発生したときにセレクターに対して実行する関数です。

于 2012-08-14T13:52:08.670 に答える
1

これは3つの引数のバリエーションであり、「バブル」ポイントを選択できます。

$('body').on('click', '.house td[red]', function() { alert("ok"); });

違いは、これにより、実際のイベントハンドラーが配置されるポイントが(非推奨の場合と同様に.delegate())ユーザーの制御下にあることです。複雑なページの優れた機能である、任意の親要素を選択できます。(たとえば、あなたの場合、本体ではなくすべての「.house」要素にハンドラーを配置できます。)

于 2012-08-14T13:52:27.377 に答える
1

これを試して、

$(document).on("click", ".house td[red]", function() {
     alert('ok');
});
于 2012-08-14T13:52:29.267 に答える
0
$(document).on("click",".house td[red]",function(){
     alert('ok');
});
于 2012-08-14T13:52:58.853 に答える