首页 > 技术文章 > 项目中使用百度地图遇见的问题

hellokitty1 2016-05-30 17:41 原文

2016-5-30

我想做出的效果是,当我鼠标移到marker上去的时候,显示重要信息,当我点击marker的时候,显示全部信息。

结果当我鼠标移上去的时候,是显示了重要信息,但是下面的页面完全不能点击的。

 

错误图:

错误代码:

 

 $(function() {    
                
                 $.ajax({
                        method: 'get',
                        url: '/yxt-admin/admin/hospital',
                        success: function(data) {
                            
                            var rows = data.data.rows,rowslen = rows.length;
                             for(var i=0;i<rowslen;i++){
                                 var point=new BMap.Point(rows[i].longitude,rows[i].latitude);
                                 var id=rows[i].id;
                                 var marker= addMarker(point);   
                            
                                 
                                 
                                 
                                // 鼠标移入时
                                 marker.addEventListener("mouseover",(function(arg){
                                     
                                      return function(){
                                        $.get('/yxt-admin/admin/hospital/' + arg + '/detail',
                                                function(res){
                                              $('#partform').form('load',res.data);
                                              $('#partDialog').dialog({
                                                    title: '部分信息 ',
                                                    width:340,
                                                    height: 230,
                                                    closed: false,
                                                    modal: true,  
                                                  
                                              });
                                        }) ;
                                     } 
                                 })(id)); 
                                 
                                
                              

                                  //   js闭包
                                 marker.addEventListener("click",(function (arg) {
                                       
                                       $.ajax({
                                         url:'/yxt-admin/admin/address/156/name', 
                                               method:'get',
                                               success:function(back){
                                                var r = back.data.rows;rowslen = r.length;
                                                for(var i = 0; i < rowslen; i++){
                                                    $("#codeName").append("<option value="+r[i].name+">"+r[i].name+"</option>");
                                                }
                                               //  }
                                                 $("#codeName").combobox({}); 
                                              // 地址选择
                                                  addressbox.ReSet();
                                               }
                                       });
                                        return function () {
                                                 // 自己执行的代码
                                                    }
                                    })(id));
                    
                    } 
                              var sContent=document.getElementById('dialog');    //全部信息框
                           var infoWindow = new BMap.InfoWindow(sContent);  // 创建信息窗口对象
                           
                              var partContent=document.getElementById('partDialog');// 部分信息框
                           var partWindow = new BMap.InfoWindow(partContent);//  创建信息窗口对象 
                           
                        }
                 });
                 
            }); 
                 
            
                

 

解决方法:

 

                                // 鼠标移入时 显示部分信息
                                 marker.addEventListener("mouseover",(function(arg){
                                      return function(){
                                          $('#partform').form('reset');
                                        $.get('/yxt-admin/admin/hospital/' + arg + '/detail',
                                                function(res){
                                              $('#partform').form('load',res.data);
                                               var parpoint=new BMap.Point(res.data.longitude,res.data.latitude);
                                              map.openInfoWindow(partWindow,parpoint);
                                        }) ;
                                        } 
                                 })(id)); 

 

效果图片:

 

推荐阅读