定义变量时出现“意外的变量”错误
"Unexpected var" error while defining variable
我创建了一个非常简单的弹出窗口/模态框。我想在单击按钮后显示它.openModal
并通过单击.closeModal
或屏幕上的任何地方来关闭它。问题是我无法定义显示模态是打开(真)还是关闭(假)的变量。
问题出在哪里?
<div class="modal"></div>
<div class="modalContent">
<span class="closeModal">x</span>
</div>
<script>
var openModal = false;
$(".openModal").click(function(){
$(".modal").show();
$(".modalContent").show();
openModal = true;
})
$(".closeModal").on('click', function(){
$(".modal").hide();
$(".modalContent").hide();
openModal = false;
})
$("body").on('click', function(){
if(openModal){
$(".modal").hide();
$(".modalContent").hide();
}
})
</script>
我终于这样解决了:
<div class="modal"></div>
<div class="modalContent">
<span class="closeModal">x</span>
</div>
var openModal = false;
$("body").on('click','.modal', function(){
if(openModal === true){
$(".modal").hide();
$(".modalContent").hide();
}
});
$("body").on('click', '.openModal', function(){
$(".modal").show();
$(".modalContent").show();
openModal = true;
});
$('body').on('click',".closeModal", function(){
$(".modal").hide();
$(".modalContent").hide();
openModal = false;
});
.modal
是弹出窗口打开时出现的灰色背景,并且它是全屏的,因此单击它的工作方式与单击正文相同。似乎无法单击正文元素,就像它在后面一样。我不确定
为变量检查创建一个函数:
function checkOpen() {
if (!openModal) {
$(".modal").hide();
$(".modalContent").hide();
}
}
然后在修改模态时调用它:
$(".openModal").click(function(){
$(".modal").show();
$(".modalContent").show();
openModal = true;
checkOpen();
})
您可以在
.modal
中使用data-*
属性:
<div class="modal" data-open='false'></div>
然后在JS中更新它:
$(".openModal").click(function(){
$(".modal").show();
$(".modalContent").show();
$(".modal").data('open', true);
})
$(".closeModal").on('click', function(){
$(".modal").hide();
$(".modalContent").hide();
$(".modal").data('open', false);
})
$("body").on('click', function(){
if($(".modal").data('open')){
$(".modal").hide();
$(".modalContent").hide();
}
})
希望这有帮助。
相关文章:
- chrome中的意外全局变量有解决方案吗
- 如何使用Javascript增加存储在变量中的变量
- 使用变量初始化数组:意外的令牌 +
- 在jquery data()对象上循环,并将值写入以键为变量名的变量中
- 语法错误:意外的令牌非法设置变量
- 定义变量时出现“意外的变量”错误
- 语法错误:我的 js 代码中出现意外的令牌变量
- Javascript 设置一个由字符串和另一个变量连接的变量
- 未捕获的语法错误:意外的令牌,将多个变量传递给javascript函数
- 闭包中变量引用的意外行为
- Meteor:变量中的变量
- TypeScript-NodeJS-意外的令牌'构造函数、函数、访问器或变量'
- (术语)如何引用变量中的变量
- javascript中变量中的变量
- AngularJS -将ng-model绑定到一个名称存储在另一个变量中的变量
- 如何将javascript函数定义为变量中的变量
- 如何更新另一个变量中的变量,并使用 JavaScript 让两者反映更改
- 使用Jasmine测试隔离作用域时意外的变量类型
- JS如何获得一个目标变量内部的变量名
- 应该避免使用与全局变量冲突的变量