Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在控件中取消选中图层时关闭模式窗口_Javascript_Leaflet - Fatal编程技术网

Javascript 如何在控件中取消选中图层时关闭模式窗口

Javascript 如何在控件中取消选中图层时关闭模式窗口,javascript,leaflet,Javascript,Leaflet,我有一个模式窗口,当用户从菜单中检查图层时会弹出。用户可以通过按下窗口上的“X”图标或单击地图来关闭此模式窗口但是,当用户从菜单中取消选中图层时,模式将再次弹出。 我需要帮助编写代码,这样当用户从菜单中取消选中图层时,模式就不会再次弹出 注:我使用传单的地图和引导模式 这是我的假设代码: 模式的HTML: <div id="myRouteModal">blah blah</div> JS: 您的代码: switch(layerClicked){ case "my

我有一个模式窗口,当用户从菜单中检查图层时会弹出。用户可以通过按下窗口上的“X”图标或单击地图来关闭此模式窗口但是,当用户从菜单中取消选中图层时,模式将再次弹出。

我需要帮助编写代码,这样当用户从菜单中取消选中图层时,模式就不会再次弹出

注:我使用传单的地图和引导模式

这是我的假设代码:

模式的HTML:

<div id="myRouteModal">blah blah</div>
JS:

您的代码:

switch(layerClicked){
    case "myRoute": toggleLayer(this.checked, myRoute);
        $('myRouteModal').modal(modalOptions);
您可以调用
$('myRouteModal').modal(modalOptions)每次。相反,如果选中了单击的复选框,则必须进行测试。仅当复选框为check时,才应调用
.modal()
-函数

正确的代码是:

case "myRoute": toggleLayer(this.checked, myRoute);
    if(this.checked) {
        $('myRouteModal').modal(modalOptions);
    }
break;

你介意举个例子吗?在我这一方不能完全发挥作用。
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);
case "myRoute": toggleLayer(this.checked, myRoute);
    if(this.checked) {
        $('myRouteModal').modal(modalOptions);
    }
break;