javascript - jQuery:点击元素不包括点击子元素
问题描述
我正在努力获得正确的 jQuery 选择器来单击某个元素。这是我拥有的 HTML:
<label class="title-label" for="me">Some Title<i class="fa fa-times del-class"></i></label>
我有两个独立的 jQuery 监听器:
$(document).on("click", ".title-label", function (e) { //magic happens here
还有一个:
$(document).on("click", ".del-class", function (e) { //the whole label gets deleted
当我点击标签时,我向.ajax
服务器发送请求,神奇的事情发生了。还有一个i
用于删除整个标签的小图标也可以。但是,当我单击.del-class
图标时,它首先触发单击.title-label
将请求发送到服务器,魔术发生然后标签被删除。图标需要留在标签内,但是当我点击它时,它不应该触发点击标签和魔法,而是立即删除标签。
我尝试了各种尝试来包含这样的:not
选择器:
:not('.del-class') .title-label
但两者总是被触发。任何线索在这种情况下正确的选择器是什么?
解决方案
您可以使用它e.stopPropagation()
来防止事件在 DOM 树中冒泡,从而防止任何父处理程序收到事件通知。
$(document).on("click", ".title-label", function(e) {
console.log('title-label click');
});
$(document).on("click", ".del-class", function(e) {
e.stopPropagation(); //Add
console.log('del-class click');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="title-label" for="me">Some Title<i class="fa fa-times del-class"> Other text </i></label>
推荐阅读
- html - 我的代码中的悬停不起作用,我正在使用 sass
- google-chrome - chrome浏览器的网络进程什么时候关闭
- python - 如何通过允许用户使用 plotly 和 python with streamlit 选择列来绘制条形图
- python - 我将如何过滤格式与其他格式不同的 pandas 数据框中的数据?
- react-native - 图片无法保存在@terrylinla/react-native-sketch-canvas
- python - `kubectl get deployments`的Python googleapiclient?
- android - 增加应用程序版本的 react-native-version 命令不会更新所有文件
- custom-post-type - 为什么自定义帖子类型存档和单页显示 404 错误
- c# - C# 修补内存中的二进制文件(jnz 到 jz)
- angular - Ngrx 8:如何模拟返回不同值的多个选择器