javascript - 如何通过点击 child 来避免点击 parent ?

标签 javascript

<div class='titlewrap'>
<div class='title'>lorem ipsum</div>
<div class='title'>lorem ipsum</div>
<div class='title'>lorem ipsum</div>
<br><br>
</title>

我想将右键单击 titlewraptitle 分开。

js

$(document).on('contextmenu', '.titlewrap', function(e) {
    e.preventDefault();
    console.log('titlewrap');
});

$(document).on('contextmenu', '.title', function(e) {
    e.preventDefault();
    console.log('title');
});

点击 title 得到双控制台结果:
标题换行
标题

如何通过点击 title 只获得 title 并保持 titlewrap 点击 titlewrap (下面的空白区域标题)

最佳答案

使用event.stopPropagation()阻止事件冒泡到父级并触发其事件。您仍然可以通过右键单击未被 title 元素覆盖的区域来触发 titlewrap 的事件

$(document).on('contextmenu', '.titlewrap', function(e) {
    e.preventDefault();
    console.log('titlewrap');
});

$(document).on('contextmenu', '.title', function(e) {
    e.preventDefault();
    e.stopPropagation();
    console.log('title');
});
.titlewrap {
  padding:10px;
  border:black solid 1px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='titlewrap'>
  <div class='title'>lorem ipsum</div>
  <div class='title'>lorem ipsum</div>
  <div class='title'>lorem ipsum</div>
</div>

关于javascript - 如何通过点击 child 来避免点击 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50879619/

相关文章:

javascript - Jasmine 在 $scope.$on 上给出 TypeError

javascript - 如何用JS选择动态创建的特定元素?

javascript - 合并不同长度的对象

JavaScript Float32Array 检查可转移对象是否已绝育

javascript - 如何在服务器端调用分页时停止页面重新加载?php

javascript - 单击链接时在页面内打开一个框

javascript - 当我编辑 htaccess 时,CSS 和 JS 丢失了

javascript - 在 jquery 中访问一个类的元素不起作用

javascript - select2 没有滚动的太长列表使选择了错误的元素

javascript - Angularjs ctrl 单元测试因依赖项失败