0

.load() メソッドで動的に入力する div があります。メニューのリンクをクリックすると、この div に Google マップを表示する機能があります。

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 のコンテンツを変更するために 2 番目のボタンをクリックすると、マップが一瞬点滅します (背景のように 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');

マップのロード後に div の背景が灰色になるため、removeAttr が必要です (クロムの「要素の検査」で確認)。

助けてくれてありがとう。

編集:これは私が意味することの写真です:問題のimg

編集#2これは私のプロジェクトです:「dove siamo」ボタンをクリックしたときに何が起こったのかを確認してください

4

1 に答える 1

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');
 });

私が見るように、コードはリンクのデフォルトの動作を妨げようとしますが、関数でそれを渡していません。

役立つ場合はこれを参照してください。

于 2012-12-16T17:31:25.840 に答える