1

簡単なコードスニペットがあります

$('.box_tile_image').live('click', function() {
console.log('click');   
});

問題は、非推奨のまま使用on()したいのですが、上記の場合に使用すると、「クリック」が表示されませんが、ライブに置き換える、そよ風のように機能します。live()

何が問題になる可能性がありますか?

4

3 に答える 3

5

同等のものは次のようになります。

$(document).on('click', '.box_tile_image', function() {
    console.log('click');   
});

...実際、1.7以降のjQueryソースを見ると、それだけですlive

とはいえ、でずっと上に行くのではなく、ターゲット要素に近いものをクリックすることを強くお勧めしますdocument。しかし、文字通り同等の場合、問題の要素に他の共通の祖先が実際にない場合は、それを実行します。

于 2012-05-03T14:49:41.200 に答える
5

メインセレクターはラッパー要素上にある必要があります

$('#MyWrapperElement').on('click',".box_tile_image",function() {
console.log('click');   
});
于 2012-05-03T14:48:33.080 に答える
1
$(document).on('click', '.box_tile_image', function() {
    console.log('click');   
});

または、 delegate()を使用できます

$(document).delegate('.box_tile_image', 'click', function() {
    console.log('click');   
});

代わりに、のdocument任意の祖先を使用することもできますbox_title_image

次のようなDOMがあるとします。

<div id="container">
  <img class="box_tile_image" src="" alt="">
</div>

次に、次のように書くことができます。

$('#container').on('click', '.box_tile_image', function() {
    console.log('click');   
});

また

$('#container').delegate('.box_tile_image', 'click', function() {
    console.log('click');   
});
于 2012-05-03T14:59:48.027 に答える