如何在未选中图层时关闭模态窗口
How to close modal window when layer unchecked from control
当用户从菜单中选中图层时,会弹出一个模态窗口。用户可以通过按下窗口上的"X"图标或点击地图来关闭这个模态窗口。然而,当用户从菜单中取消选中图层时,模态将再次弹出。
我需要帮助编写代码,这样当用户从菜单中取消选中图层时,模式就不会再次弹出。
注意:我使用传单的地图和Bootstrap的模式。
下面是我假设的代码:
modal的HTML:
<div id="myRouteModal">blah blah</div>
自定义图层菜单的HTML:
<label><input id="myRoute" type="checkbox" class="check">My Route</label>
JS用于自定义菜单控件:
var overlaysMenuCtrl = L.Control.extend({ ... blah blah... });
map.addControl(new overlaysMenuCtrl)());
JS:
function toggleLayer(checked, layer){
if(checked){
map.addLayer(layer);
} else {
map.removeLayer(layer);
}
}
$(".check").change(function(){
var layerClicked = $(this).attr("id");
//Turn layers on and off based on the ID of the radio checked
switch(layerClicked){
case "myRoute": toggleLayer(this.checked, myRoute);
$('myRouteModal').modal(modalOptions);
break;
...and other layers ...
}
});
代码:
switch(layerClicked){
case "myRoute": toggleLayer(this.checked, myRoute);
$('myRouteModal').modal(modalOptions);
每次都调用$('myRouteModal').modal(modalOptions);
。相反,您必须测试单击的复选框是否被选中。只有当复选框被选中时,您才应该调用.modal()
-函数。
正确的代码应该是:
case "myRoute": toggleLayer(this.checked, myRoute);
if(this.checked) {
$('myRouteModal').modal(modalOptions);
}
break;
相关文章:
- 点击AngularJS模态窗口捕捉背景事件
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 如何使用jquery关闭模态窗口,通过模拟模态's关闭按钮
- Angularjs - 观察模态窗口从另一个控制器关闭
- 模态窗口yii2中的Ajax验证数据
- Ajax 模态窗口可以访问父窗口 PHP 数据吗?
- 在选择(rails_admin)时更改时在模态窗口中添加新字段
- 在模态窗口上创建 cookie
- 如何在用户离开网页时显示模态窗口
- Magento时事通讯弹出窗口(模态窗口)在每个页面上触发.它应该只在主页上弹出
- 如何在 jquery 中浮动模态窗口
- 创建一个模态窗口以使用 AngularJS 加载数据
- Angular JS将msg广播到多个视图,包括模态窗口
- 模态窗口在电子上消失
- 如何使用 javascript 在模态窗口内重定向
- ExtJS 4.2.1 用于加载指示和模态窗口的不同 CSS 掩码
- 机器人可以单击在 javascript 中制作模态窗口的链接吗?
- 如何在 angularjs 模态窗口中运行 jquery
- Javascript 模态窗口例程每次单击都会执行更多时间
- 模态窗口(弹出窗口)警报在使用 angularJs 的错误字段上显示