javascript - 点击事件在 map 上方不起作用

标签 javascript jquery leaflet

我有一张传单 map 和 2 个包含一些内容的 div 部分。

<body>      
    <div class="row showEquipmentDetails" style="margin:10px;">
        <button type="button" class="btn btn-primary" onclick="showEquipmentDetails()" style="float:right"><i class="fa fa-bars"></i></button>
    </div>
    <div class="EquipmentContent row">
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6" style="float:right;background:#dff0ff;">  
            <section class="col-xs-12 col-sm-2 cl-md-2 col-lg-2">
                <label class="equipmentHeaderlable">Name</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>  
            <section class="col-xs-12 col-sm-3 cl-md-3 col-lg-3">
                <label class="equipmentHeaderlable">Speed</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>                  
            <section class="col-xs-12 col-sm-1 cl-md-1 col-lg-1">
                <button type="button" style="display: inline-block;float:right;" class="btn btn-danger" onclick="hideEquipmentDetails()"><i class="fa fa-times"></i></button>
            </section>
        </div>
    </div>
    <div id="map">  
    </div>
</body>

<script>
$('.EquipmentContent').hide();
function showEquipmentDetails(){
$('.showEquipmentDetails').hide();
$('.EquipmentContent').show();
}
function hideEquipmentDetails(){
$('.showEquipmentDetails').show();
$('.EquipmentContent').hide();
}
</script>

正在隐藏和显示位于 map 外侧的 2 div 部分。但我需要在 map 上方隐藏和显示它,所以我这样写

<div id="map">  
    <div class="row" style="margin:10px;">
        <button type="button" class="btn btn-primary showEquipmentDetails" onclick="showEquipmentDetails()" style="float:right"><i class="fa fa-bars"></i></button>
    </div>
    <div class="EquipmentContent row">
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6" style="float:right;background:#dff0ff;">  
            <section class="col-xs-12 col-sm-2 cl-md-2 col-lg-2">
                <label class="equipmentHeaderlable">Name</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>  
            <section class="col-xs-12 col-sm-3 cl-md-3 col-lg-3">
                <label class="equipmentHeaderlable">Speed</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>                  
            <section class="col-xs-12 col-sm-1 cl-md-1 col-lg-1">
                <button type="button" style="display: inline-block;float:right;" class="btn btn-danger" onclick="hideEquipmentDetails()"><i class="fa fa-times"></i></button>
            </section>
        </div>
    </div>  
</div>

但是点击事件在 map 上不起作用。当我单击第一个按钮时, map 正在缩放。单击事件不会被触发。为什么?我怎样才能实现它?有什么建议吗?谢谢!!

最佳答案

我无法加载 map 。但请检查此解决方案是否适合您,

var mymap = L.map('map').setView([51.505, -0.09], 13);



$('.EquipmentContent').hide();


function showEquipmentDetails(){
$('.showEquipmentDetails').hide();
$('.EquipmentContent').show();
}

function hideEquipmentDetails(){
$('.showEquipmentDetails').show();
$('.EquipmentContent').hide();
}
#container {
  width: 650px;
  height: 350px;
  position:relative
}
#map { 
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
 }

 
.EquipmentContent { 
  width: 90%;
  height: 90%;
  position: absolute;
  top:8px;
  left: 45px;
 }
 
 .showEquipmentDetails { 
  width: 40px;
  height: 40px;
  position: absolute;
  top:8px;
  left: 45px
 }
 
 #EquipmentContent {
  z-index: 10;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

 <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css"
   integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ=="
   crossorigin=""/>
   
   <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"
   integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw=="
   crossorigin=""></script>
   
   
<div id="container">
    <div id="map"></div>
    <div class="EquipmentContent row">
        <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6" style=";background:#dff0ff;">  
            <section class="col-xs-12 col-sm-2 cl-md-2 col-lg-2">
                <label class="equipmentHeaderlable">Name</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>  
            <section class="col-xs-12 col-sm-3 cl-md-3 col-lg-3">
                <label class="equipmentHeaderlable">Speed</label>
                <label class="equipmentHeaderValues">SSS</label>
            </section>                  
            <section class="col-xs-12 col-sm-1 cl-md-1 col-lg-1">
                <button type="button" style="display: inline-block;" class="btn btn-danger" onclick="hideEquipmentDetails()"><i class="fa fa-times"></i></button>
            </section>
        </div>
    </div>
    <button type="button" class="btn btn-primary showEquipmentDetails" onclick="showEquipmentDetails()" ><i class="fa fa-bars"></i></button>
    
</div>







    
  
    
    
    

关于javascript - 点击事件在 map 上方不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48860537/

相关文章:

javascript - 传单如何实时更新用户位置标记

javascript - 在运行时创建一个 <div>

php - 当移动设备访问我的网络服务器时,如何获取它们的屏幕尺寸?

javascript - 更改 bootstrap 4.2 轮播持续时间

javascript - 在 javascript 中添加和删除 dataTables 源数组中的项目

jQuery 范围选择器

javascript - float div - 向现有脚本添加多个

javascript - 弹出react传单图库

javascript - 将数据添加到选择中

javascript - 缩放到单击的功能