首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用事件的多个点的openInfoWindowHtml问题

使用事件的多个点的openInfoWindowHtml问题
EN

Stack Overflow用户
提问于 2010-01-18 04:37:10
回答 1查看 2K关注 0票数 1

我是一个初学者,并使用openInfoWindowHtml显示气球文本。我的应用程序可以选择显示单个位置和多个位置。

我的单位置气球文本使用openInfoWindowHtml()可以很好地工作;

但是,当我进入多重,它总是显示最后的点文本和点击事件的所有点从来没有发生。

代码片段:

代码语言:javascript
复制
var markers =[];

for(var i=0;i<(geoList.length)-1;i++)
{
    var geo = (geoList[i]).split(',');
    map.setCenter(new GLatLng(geo[3], geo[4]), 2);
    var ip_point = new GLatLng(geo[3], geo[4]);

    //creating a marker 
    marker = new GMarker(ip_point);
    map.addOverlay(marker);
    markers[i] = marker;

    // The ballon text which shows the details of the ip address

    var ip = "<div style=\"font-family:Verdana;font-size:10px;text-align:left\">";
    //var dbName = base64_decode(geo[5]); // added on 14Dec2009
    //If IP is not found it goes to else loop           
    if(geo.length== 9){
        ip += "<span class=\"FSColorBold\">"+geo[5]+"</span><br /> ";
        ip += "<?php __('IP:'); ?>"+geo[6]+"<br />";
        ip += "<?php __('ID:'); ?>"+geo[7]+"<br />";
        ip += "<?php __('Last Accessed: '); ?>"+geo[8]+"<br />";
        ip += geo[2]+","+geo[1]+"<br />";
    }
} 

// shows IP details info by default         
map.openInfoWindow(map.getCenter(),ip);

// Reloads the IP details info on clicking the marker 

GEvent.addListener(marker, "click", function(){
    marker.openInfoWindowHtml(ip+'');});

点在循环中,事件侦听器在循环之外。

有人能告诉我到底出了什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2010-02-02 02:13:23

您只将单击事件与最后一个标记相关联。您需要为要添加到地图中的每个标记调用GEvent.addListener。

您还需要确保在触发事件时,回调中的标记是与事件关联的标记。您可以通过将标记创建代码移动到一个单独的函数(利用Javascript闭包来确保回调中的标记是外部函数范围内的标记)来做到这一点。

看看这个基于示例的示例 (代码)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2083927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档