jquery - 单击()时仅选择父级,排除其他所有内容

标签 jquery jquery-selectors

我有一个 #container 和按钮,它们是该容器的子级。当我单击容器本身(按钮周围的空白区域)时,我希望它更改其背景颜色,但我不希望单击按钮时发生任何事情。

但是,在 jquery 中选择 #container 会使单击按钮也会更改 bg...

<div id="container">
   <div class="button>
      <span class="text">Button 1</span>
   </div>
   <div class="button>
      <span class="text">Button 2</span>
   </div>
</div>

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

我尝试了很多方法,但似乎都不起作用。

最佳答案

检查事件的原始目标:

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

引用:event.target

关于jquery - 单击()时仅选择父级,排除其他所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299897/

相关文章:

javascript - 执行异步函数后如何刷新页面

Jquery UI 可拖动和可放置 - 范围

javascript - jQuery:在 DOM 注入(inject)后选择元素(当元素未知时)

JavaScript 改变文本颜色

jQuery 选择器问题。 :last-child not doing what I need

javascript - 高度监听器,jQuery

javascript - 打开包含预填充字段的对话框(单击编辑链接后)

jquery - 滚动页面时试图让 div 停留在顶部。它停留在顶部,但 CSS 正在变形

javascript - jQuery 使用 .toggle() 切换单个元素

jQuery 一级子选择器的最佳方法