我有一组不同类别的DIV。大约有40个div,随机设置4个类。我需要一个JQuery脚本来制作" background-color:white"在我点击的每个网格项目上。我试过这个:
$('.grid-item').click(function(){
$(this).css("background-color", "white");
})
但我觉得这不是一个好主意。 因为它没有用!
你能帮帮我吗?答案 0 :(得分:2)
$('body').on('click', 'div',
function(e){
$(this).css("background-color","white");
});
答案 1 :(得分:0)
根据您提供的有限信息,您的代码似乎没问题。
如果在调用.click()之后追加div,则需要在网格项的父元素上创建委托事件。这是因为在调用.click()时(即通常在加载时)绑定事件处理程序。如果在调用.click()时元素不存在,则事件不会绑定到它!
因为事件通过DOM传播,我们可以通过在父元素(在下面的示例中为.parent-element
)上创建一个委托事件来解决这个问题,我们知道它们存在于页面加载中。以下是:
$('.parent-element').on('click', '.grid-item', function(){
$(this).css("background-color", "white");
})
关于这个问题的更多阅读: