javascript - 如果只有 div 1 被点击,播放声音

标签 javascript html

在我的项目中,我有一个很大的div,那个div中还有一个div作为形状。

当你点击形状时,你做对了,你有 1 分。当您仅单击背景 div 时,我想播放声音。

当我这样做时(简单示例):

var $audioLifeLost = new Audio('Mis.mp3');

#divid.onclick = function (){
$audioLifeLost.play();
}

它还会在我点击形状时播放声音,因为我同时点击了两个 div。

无论如何我该怎么做?

最佳答案

您需要stop the event from propagating由家长决定:

document
  .querySelector('#inner')
  .addEventListener('click', e => {
    console.log('click inner');
    e.stopPropagation(); // <-- stop event propagation
  })

document
  .querySelector('#outer')
  .addEventListener('click', () => {
    console.log('click outer');
  })
#outer {
  background: pink;
  height: 300px;
  width: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#inner {
  background: salmon;
  width: 150px;
  height: 150px;
}
<div id="outer">
  <div id="inner"></div>
</div>

关于javascript - 如果只有 div 1 被点击,播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48080771/

相关文章:

javascript - Promise.map 中的异步方法

javascript - 语法错误 : Unexpected token o in JSON at position 1

javascript - 将变量传递到自定义按钮

html - 内容忽略前的伪元素\在浏览器中

html - 如何在文本下方使用 png 图像创建导航菜单

javascript - JavaScript 中的警报消息

javascript - 使用 Three.js 制作带孔的圆 Angular 盒

javascript - 将 JSON 数据从 C# 传递到独立的 Javascript 文件(无 Web 服务器)

javascript - 为图标填充颜色

javascript - 方向 : rtl for scrollbar but text is being added to left?