2013-01-20 26 views
1

我正在使用信息框。我可以加載所有標記,在每個信息框中加載不同的內容,然後「正確」觸發。然後在哪裏開始問題:谷歌地圖信息框不按預期在iOS上觸發事件

1)在桌面/ iOS上,我的切換事件僅在第二次點擊後生效。基本上它會上下移動一個div。請參見下面的代碼:

//Setting up the marker 
var marker = new google.maps.Marker({ 
       map: map, 
       draggable: false, 
       position: latlng6, 
       visible: true 
       }); 

       var boxText = document.createElement("div"); 
       boxText.class = "test"; 
       boxText.style.cssText = "height: 0px;"; 
       boxText.innerHTML = "<div id='top'><p>SUSSAN</p><a href='#' class='info'>+ info</a>" 
            + "<h2></h2>" 
            + "</div>" 
            + "<div id='promo'>" 
            + "<div class='badge'>" 
            + "<img src='[email protected]'>" 
            + "</div>" 
            + "<p>TODAY UP TO 70% OFF</p>" 
            + "</div>"; 



       var myOption = { 
         content: boxText 
         ,disableAutoPan: false 
         ,maxWidth: 0 
         ,pixelOffset: new google.maps.Size(-128, -161) 
         ,zIndex: null 
         ,boxStyle: { 
          background: "url('') no-repeat" 
          ,opacity: 1 
          ,width: "280px" 
          ,height: "0px" 

         } 
         ,closeBoxMargin: "36px 25px 0px 0px" 
         ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif" 
         ,infoBoxClearance: new google.maps.Size(1, 1) 
         ,isHidden: false 
        ,zIndex: 999999 
         ,pane: "floatPane" 
         ,enableEventPropagation: false 
       }; 

       var ib = new InfoBox(myOption); 
       boxList.push(ib); 



//ANIMATE MORE INFO 
     google.maps.event.addDomListener(boxList[i].content_,'click', function() { 

      $("#promo").toggle(function(a) { 
      $("#top").animate({top: 14}, 200)}, 
      function() { 
      $("#top").animate({top: 50}, 200);; 

      });   

2)在iOS,甚至與第一個問題,當我「龍頭」在格「促銷」第一次信息框只是消失,在桌面上,它不會發生。如果我回來了,再次打開信息框,然後點擊div「促銷」,它就像桌面一樣工作。我相信這第二個問題與第一個問題有關。但不知道爲什麼只發生在iOS上。 = /欣賞任何幫助。

看到活生生的例子http://www.clickin.com.au/fashion/hottie4.html

回答

1

我不能告訴你關於IOS的問題,任何事情,但對於到第一個問題:

撥動處理程序首次點擊後,連接,這是爲什麼第一次點擊無法觸發切換事件。

您可以連接切換,而不是直接等待第一個點擊(用下面的代碼替換當前的點擊處理程序boxList [I] .content_)

$("#promo",boxList[i].content_) 
       .toggle( 
        function(a) { 
        $("#top").animate({top: 14}, 200); 
        }, 
        function() { 
        $("#top").animate({top: 50}, 200); 
       }); 
+0

解決了第一個問題,工作就像魅力!謝謝@ Dr.Molle。關於第二個問題,我在google.maps.event.addListener(map,'dragstart',function(){)上添加了「dragstart」,而不是「click」。它解決了我第一次點擊時的問題,infbox正在消失在ios上從現在開始,在我點擊移動地圖後,該框就消失了,但是,這並不是我想要實現的最佳解決方案= /。 –