Javascript $(';div';)。单击函数isn';我没有在所有的分区上工作
出于某种原因,我的“百万像素”动态生成的div在我点击它们时没有响应,尽管我编写了一个选择所有div的函数。单击时,所有其他div都会响应Javascript $(';div';)。单击函数isn';我没有在所有的分区上工作,javascript,jquery,html,click,selector,Javascript,Jquery,Html,Click,Selector,出于某种原因,我的“百万像素”动态生成的div在我点击它们时没有响应,尽管我编写了一个选择所有div的函数。单击时,所有其他div都会响应 function init($input){ for (i=1; i <= 20; i++){ $('body').append('<div class="megaPixel" id="megaPixel_' + $input + '"></div>'); $input = $input + 1; } }; $
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);
function init($input){
对于(i=1;i,这是因为您在生成div之前分配了click侦听器
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);
function init($input){
对于(i=1;i我想你正在寻找这样的东西
$('div.megaPixel').on('click', function(){
$(this).css('background-color', 'red');
});
您是否尝试过使用$(文档)。在(“单击”,“div.megaPixel”,function(){});
上,您也可以使用此选项:
$("body").on("click", "div.megaPixel", function(){
$(this).css('background-color', 'red');
});
这将在div中查找归类为megaPixel
的元素。感谢您捕捉到这一点。已修复。与jQuery相关的问题中有一半属于事件委派。投票关闭时过于本地化;OP可以通过调用init()来修复此问题
在绑定之前。我认为这可能是目前为止最好的建议。无论何时执行init都无关紧要。您正在将您的单击处理程序绑定到body,这样它们就存在于body上。每当您单击页面时,它都会发现它是否适用于单击时可用的元素。干得好。@WillKlein--Haha,这一精确方法的变体这个问题每天被问很多次,所以这是一个简单的建议:)哇,我从昨天开始就一直在努力解决这个问题,几分钟内我得到了4个回答。免费。太棒了。