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));
效果图片: