【问题标题】:Using closeclick event in infobox在信息框中使用 closeclick 事件
【发布时间】:2012-08-16 10:58:41
【问题描述】:

我已经厌倦了在 infobox(google maps) 中搜索如何应用 closeclick 事件。我尝试了几乎所有我能想到但没有成功的场景。 请帮帮我

这是我添加标记的代码:-

var ib_click = new InfoBox();
ib_click.isOpen = false;
var toShowHover = true;

function add_marker(lat,lng,icn,title,box_html) {
  var mapcode,myOptions;
  var marker = new google.maps.Marker({
    /*marker settings*/
  });   


  myOptions = {
    /*option of infobox*/
  };
  marker.ibOptions = myOptions;
  google.maps.event.addListener(marker, 'click', function() {
    mapcode = /* html for showing box */
    myOptions.content = mapcode;
    myOptions.boxStyle.width = "235px";
    ib_click.setOptions(marker.ibOptions);
    ib_click.open(map, marker);
    ib_click.isOpen = true;

    toShowHover = false;
  });   
  google.maps.event.addListener(marker, 'mouseover', function() {
    //this is fired
    var mapcode = /*html for showing hover*/;
    //ib_click.open(map, marker);
    myOptions.content = mapcode;
    myOptions.boxStyle.width = "205px";
    ib_click.setOptions(marker.ibOptions);
    ib_click.open(map, marker);
    // ib_click.isOpen = true;
  });   
  google.maps.event.addListener(marker, 'mouseout', function() {
    //alert('mouse out');//this is fired
    //toShowHover = true;
  });

  google.maps.event.addListener(ib_click, 'closeclick', function(){
    //how to use closeclick 
    //showing error here
    alert('closed');
  });
  return marker;
}

请多指教,谢谢 安库尔;(

【问题讨论】:

    标签: html google-maps google-maps-markers


    【解决方案1】:

    尝试将关闭单击的侦听器添加到盒子打开后的右侧,});标签。创建盒子时,您需要为每个盒子添加监听器。

    下面是我使用关闭点击监听器的代码。

    function addMarker(location) {
    var marker = new google.maps.Marker({
    position: location,
    map: map,
    icon: "/mapping/redmarker1.png",
    title:markerClickGrid
    });
    markers.push(marker);
        var boxText = document.createElement("div");
        boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: gray; padding: 5px; color:white;";
        boxText.innerHTML = marker.title;
        var myOptions = {
         content: boxText
        ,disableAutoPan: false
        ,maxWidth: 0
        ,pixelOffset: new google.maps.Size(10, -50)
        ,zIndex: null
        ,boxStyle: { 
        background: "url('tipbox.gif') no-repeat"
        ,opacity: 0.75
        ,width: "140px"
        }
        ,closeBoxMargin: "10px 2px 2px 2px"
        ,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
        ,infoBoxClearance: new google.maps.Size(1, 1)
        ,isHidden: false
        ,pane: "floatPane"
        ,enableEventPropagation: false
        };
        var ib = new InfoBox(myOptions);
        ib.open(map,marker);
        preventmarkermouseoutibclose = true;
    
    google.maps.event.addListener(ib, 'closeclick', function(event) {
        preventmarkermouseoutibclose = false;
        document.getElementById('debugtext').value = "ib close click detected";
    });
    google.maps.event.addListener(marker, 'click', function() {
        ib.open(map,marker);
        preventmarkermouseoutibclose = true;
        document.getElementById('debugtext').value = "ib open detected";
    });
    google.maps.event.addListener(marker, 'rightclick', function(event) {
        ib.close(map,marker);
        marker.setMap(null);
        preventmarkermouseoutibclose = false;
        document.getElementById('debugtext').value = "ib close on rightclick detected";
    });
    google.maps.event.addListener(marker, "mouseover", function() {
        document.getElementById('debugtext').value = "marker mouseover detected";
        ib.open(map,marker);
    });
    google.maps.event.addListener(marker, "mouseout", function() {
        if(preventmarkermouseoutibclose==true){
        }
        else if(preventmarkermouseoutibclose==false){
        ib.close(map,marker);
        }
    });
    

    ib 是我的信息框的名称。每次打开信息框 ib 时,都会添加一个侦听器,寻找“closeclick”。

    这对我有用。希望它对你有用。

    【讨论】:

    • 这是一个 2 年前的帖子,所以已经解决并通过了,无论如何 +1 的事情...... :)
    猜你喜欢
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多