1

たとえば、次のような動的コンテンツがあります

<table>
<tr>
    <td id='id_1' class='myclass'>1</td>
    <td id='id_2' class='myclass'>2</td>
    <td id='id_3' class='myclass'>3</td>

....そして私の on 関数は

$(body).on('click','.myclass', function() {
    console.log($(this).attr('id'));        
});

td をクリックすると、td の ID の代わりに 671 などの整数が表示されます。

これを行う正しい方法と、上記のコードの何が問題なのかを教えてください

4

5 に答える 5

1

$(body) が有効な構文だとは思いません。代わりに $(document) を試してみてください。問題なく動作するようです: jsfiddle working

$(document).on('click','.myclass', function() {
    alert($(this).attr('id'));        
});
于 2013-03-23T07:37:52.753 に答える
1

$(body) の代わりに $('body') を使用してみてください

于 2013-03-23T07:38:01.347 に答える
0

コードを確認しましたが、上記の本文の問題を除いてはうまく機能しているようです。そのため、問題は、アイテムを動的に追加する方法または使用しているjQueryバージョンに関連している必要があります。

これは、動的に追加されたアイテムを処理するコードです。これは、あなたのアイテムと非常によく似ています。選択したアイテムをdivに出力して、見やすくします。

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
<script>
    $(document).ready(function () {
      var counter = 1;
      window.setInterval(function() {
        $('tr').append("<td id='id_"+counter+"' class='myclass'>"+counter+"</td>");
        counter++;
      }, 3000);
      $('body').on('click','.myclass', function() {
        $('#selectedtd').html($(this).attr('id'));  
      });
    });
</script>
</head>
<body>
  <div id="selectedtd"></div>
  <table>
  <tr>
  </tr>
  </table>
</body>
</html>
于 2013-03-23T07:54:42.873 に答える
0

以下を試してください

$('body td').click(function() {
    console.log($(this).attr('id'));        
});
于 2013-03-23T07:39:09.497 に答える
0

タグ セレクタ $(body) を使用しているため、単一引用符または二重引用符で囲む必要があります。そうでなければ、それで行きます-

$(document).on('click','.myclass', function() {
    alert($(this).attr('id'));        
});
于 2013-03-23T08:23:29.383 に答える