将列表项与Google地图标记相关联

时间:2016-07-21 12:14:06

标签: javascript jquery google-maps google-maps-api-3

如果你第一眼看到小提琴:

https://jsfiddle.net/80m1psmy/7/

这将更容易理解。

基本上,第一个标签中的li" bar"工作正常,如果你点击li,相关的标记会显示它的信息。但是,这对其他标签不起作用吗?

我希望所有标签都具有相同的功能。

以下是相关代码:

$('#bars-list li').each(function(i, e) {
    $(e).click(function(i) {
        return function(e) {
            google.maps.event.trigger(gmarkers[i], 'click');
        }
    }(i));
});

我想我需要添加一个$(this),以便它不是特定于某个特定列表,但我不确定如何实现它?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于你的选择器#bars-list li

即使为其他标签添加相同的代码,它也无法按预期工作,因为索引(i)将基于当前标签的项目,而不是所有项目,所以当你点击例如任何标签的第一项,它将始终触发第一个标记的点击(不是相关类别的第一个标记)。

您必须使用包含所有项目的选择器,例如.lists li

https://jsfiddle.net/6mqooqd9/