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