0

何らかの理由で、すべての div を選択する関数を作成しているにもかかわらず、「megaPixel」で動的に生成された div をクリックしても応答しません。クリックすると、他のすべての div が応答します。

function init($input){
  for (i=1; i <= 20; i++){
  $('body').append('<div class="megaPixel" id="megaPixel_' + $input + '"></div>');
  $input = $input + 1;
  }
};

$('div').click(function(){
  $('.megaPixel').css('background-color', 'red');
});

init(1);
4

4 に答える 4

1

これも使用できます:

$("body").on("click", "div.megaPixel", function(){
  $(this).css('background-color', 'red');
});
于 2013-02-24T00:29:27.033 に答える
1

これは、div が生成される前にクリック リスナーを割り当てているためです。

function init($input){
  for (i=1; i <= 20; i++){
  $('body').append('<div class="megaPixel" id="megaPixel_' + $input + '"></div>');
  $input = $input + 1;
 }
 $('div').click(function(){
    $('.megaPixel').css('background-color', 'red');
 });
};

init(1);

そのようにしてみてください。

于 2013-02-24T00:26:10.833 に答える
0

$(document).on("click", "div.megaPixel", function() {} );動的に追加された要素が含まれるように、代わりに使用してみましたか?

于 2013-02-24T00:28:44.187 に答える
0

このようなものを探していると思います。

$('div.megaPixel').on('click', function(){
  $(this).css('background-color', 'red');
});
于 2013-02-24T00:26:31.067 に答える