地图在动态div加载时闪烁

时间:2012-12-16 16:20:57

标签: jquery google-maps

我有一个div,我用.load()方法动态填充。 我有一个功能,只需点击菜单中的链接即可在此div中显示谷歌地图。

function ShowGmap() {
  var myLatlng = new google.maps.LatLng(41.905, 12.710);
    var mapOptions = {
      center: myLatlng,
      zoom: 16,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("mb"),
        mapOptions);
    var marker = new google.maps.Marker({
  position: myLatlng,
  map: map,
  title:"----"

mb是我每次填充的div的ID。我想要的是我菜单上的每个按钮都会用不同的内容填充这个div。  问题是:当我点击第二个按钮来更改该div的内容时,地图闪烁(有时它会像背景一样在div上绘制)一秒钟。我不确定这是否是缓存问题。 这是主页按钮上的单击操作的代码

$("#bt_home").click(function(){
    event.preventDefault();
    click_btdove=false; //this make the button clickable only once
     $("#mb").removeAttr('style');
     $('#mb').load('main_page.html #home');

需要removeAttr,因为在加载地图后div具有灰色背景(在chrome上使用'inspect element'检查。

感谢您的帮助。

编辑: 这是我所说的图片:img of the problem

编辑#2这是我的项目:看看你点击“鸽子siamo”按钮时发生了什么

1 个答案:

答案 0 :(得分:0)

试试这个:

 $("#bt_home").click(function(event){
     event.preventDefault();
     click_btdove=false; //this make the button clickable only once
     $("#mb").css({"background":"none"}); // <-----add this to remove the background color
     $('#mb').load('main_page.html #home');
 });

我看到你的代码试图阻止链接的默认行为,但是你没有在函数中传递它。

如果有帮助,请看这个。