javascript - 如果模态可见,则阻止任何点击
问题描述
<body>
<div id='container'>
<div id='cpanel' style="position:fixed;">525</div>
</div>
<div class='modal' style="position:fixed;>323</div>
</body>
如果可见,我想阻止任何点击container
及其子项。modal
js
$('#container, #cpanel').click(function(){
if ($('.modal').is(':visible')) {return false;}
});
点击container
被阻止,但cpanel
不是!
有什么帮助吗?
解决方案
一个可能的解决方案可以考虑 CSS指针事件属性。
如果您使用的是 jquery ui 对话框,则可以将代码添加到事件中:
- 打开(事件,用户界面)
- close( event, ui )(删除新添加样式的代码)
$('.modal').dialog({
open: function( event, ui ) {
$('#cpanel').css('pointer-events','none');
},
close: function( event, ui ) {
$('#cpanel').css('pointer-events','auto');
},
});
$('#container, #cpanel').click(function(e){
e.stopPropagation();
console.log('--->clicked');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
<div id='container'>
<div id='cpanel' style="position:fixed;">525</div>
</div>
<div class='modal' style="position:fixed;">323</div>
推荐阅读
- ios - 如何在 iOS、PDFKit、swift 中获取 pdf 页面的准确 X 和 Y 原点值
- ajax - 关闭有计时器的 Sweet Alert 库时出现问题
- c# - 如何编写动态选择表达式
- python - Python使用正则表达式检查用户名
- node.js - 我在 nodeExpress 中发送 post 请求时遇到问题
- python-3.x - 为 Windows 10 安装 Anaconda 的问题
- docker - 我可以在 circleCI 中使用哪些简单的固定版本图像?
- prolog - ISO-Prolog 处理器合规性的空间/时间要求
- unity3d - 可以处理的最大 polycount unity 是多少
- django - 在哪里添加“social_core.backends.yammer.YammerOAuth2”以在 django 中进行社交身份验证