只选择父级,在click()时排除其他所有内容

我有一个#container和按钮,它们是这个容器的子代。 当我点击容器本身(按钮周围的空白区域)时,我希望它改变它的背景颜色,但是当我点击按钮时我什么都不想要。

但是,在jquery中选择#container会使点击按钮也会改变bg …

Button 1
Button 2
$("#container").click(function() { $('#container').css({background: 'blue'}); });

我尝试过很多东西,似乎没什么用。

检查事件的原始目标:

 $("#container").click(function(event) { if(event.target === this) { $('#container').css({background: 'blue'}); } }); 

参考event.target

还有一个更简单的解决方案:

 $('#container button').click(function(event) { event.stopPropagation(); }); 

单击时检查ID,因此您不会选择按钮。

 $("#container").click(function(event) { if(event.target.id === "container") { $('#container').css({background: 'blue'}); } });