jquery - 如何在 jQuery 中为 div 应用“if event target”并也适用于所有子项(模态关闭问题)?
问题描述
我在页面上有一个典型的模式设置。你按下一个按钮来激活。屏幕变暗(通过全屏背景 div)并且模态在其前面(最高 z-index)。
我也将它设置为通常您可以按下关闭按钮或主模式之外的任何位置来关闭它。
如果模态框为空,这一切都可以正常工作。
问题:当您单击模式中的任何子内容(文本、div 等)时,这也会关闭模式。
下面是我的代码,假设忽略#modal 内的点击,但它没有将其应用于其中的所有子内容。
#blackout 代表主模态后面的半透明全屏div(普通模态效果)。
$("#blackout").click(function(event){
if(event.target === modal){
return false;
}
else{
$("#blackout").css( 'display', 'none');
}
});
有没有办法更改代码,以便 if 语句适用于模态以及其中的任何内容?
谢谢。
解决方案
我能够自己解决问题。也许这对其他人有帮助。
假设您的主模态 div 是#modal,添加以下代码仍将允许在模态内的子元素上使用链接等功能,但这样做会避免不必要的模态关闭。
$("#modal").click(function(e){
e.stopPropagation();
});
推荐阅读
- sonarqube - SONAR 代码覆盖率没有得到反映
- huawei-mobile-services - 我需要访问HUAWEI AppGallery Connect API并通过PMS API(服务器API)创建产品。但是 403 客户端令牌授权失败
- angular - Angular 11:步进器中形成多个字段
- python - 使用 xarray 将 netcdf 文件的一部分转换为数据框
- java - 使用 XMLBeans 4.0.0 版和 xmlbeans-maven-plugin 2.3.3 的模式类生成失败
- linux - 非持久性系统范围的环境变量
- python-3.x - 当前路径 chat/room/1/ 与其中任何一个都不匹配
- osgi - Karaf 从 4.2.0.M1 升级到 4.2.0.M2 出现错误
- jenkins - 詹金斯声纳扫描仪显示警告
- java - 为 Kafka Consumer 随机生成的组 ID