jquery - OnClick:区分父 div 和子 div
问题描述
我目前在一个网站上工作,但我对 HTML 和 JQuery 完全陌生。
这是使用 JQuery 动态生成的 HTML 代码:
<div class="gallery-card" id="SOME_ID" onclick="ViewSelected(this.id)" style="background-color: rgb(206, 20, 186);">
<strong class="StrongClass">Carlos Ba</strong>
<button class="Gallery-Button" onclick="TakeToCardInfo(this.id)" id="SOME_ID">See More..</button>
<div class="circle" onclick="DeleteRecordAction(this.id)" id="SOME_ID">
<span class="glyphicon glyphicon-remove icon-sizeB"></span>
</div>
</div>
我想要的功能是,当用户单击画廊卡 div(即带有名称的正方形)时,用户会看到所选画廊卡的详细信息,并且当用户单击带有 x 的圆圈时,相应的画廊-卡被删除。目前,此功能正在部分发挥作用。每当我单击画廊卡 div的任何部分时,都会显示正确选择的画廊卡信息,但是当我单击带有 x 的圆圈时,它不会简单地删除记录,它还会尝试显示已删除的记录。我该如何防止这种情况?当用户单击子元素 ( div class="Circle ) 时,如何防止父 ( Gallery-card div ) 的行为被激活?
解决方案
将事件对象传递给函数,并调用event.stopPropagation()
以防止事件冒泡到容器中。
onclick="DeleteRecordAction(this.id, event)"
并更改DeleteRecordAction
为:
function DeleteRecordAction(id, event) {
event.stopPropagation();
// rest of code
}
顺便说一句,而不是传递this.id
给函数,只需传递this
. 然后你不需要调用getElementById()
来取回元素,你可以使用参数。
推荐阅读
- python - 如何列出给定域中的唯一网址
- scripting - 替换为不同的段
- mongodb - 如何访问mongoDb中的数组数组
- ubuntu - 如何从 Ubuntu 命令(Alt + F2)打开 WPS 写入、演示和电子表格应用程序
- php - .htaccess 基于referrer的重定向
- machine-learning - 使用布尔公式的分类器
- java - ehcache3 - 为什么缓存不会过期?
- php - Codeigniter:文件上传在 localhost 上工作,但不在服务器上(JSON 输入意外结束)
- spring-boot - 如何从 @Async 带注释的方法中抛出异常
- javascript - Promise.all() 比对每个 Promise 都使用 await 慢?