将类添加到当前打开的infowindow

时间:2014-11-12 10:50:36

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

我有一个谷歌地图上有一堆标记。我还有一个相应的侧边栏列出了那些标记。单击其中一个时,地图上相应的标记将打开信息窗口。这非常有效。

当您点击侧边栏中的其中一个链接时,我想添加一个'反弹'因此它变得明显是主动/开放链接。同样,如果我单击地图上的标记,我希望将相同的类添加到列表项中。当点击另一个标记或链接时,我希望该类移动最新的点击项目。

我的地图代码有一个jsFiddle:http://jsfiddle.net/3xkuybrf/2/

我在下面的所有代码都是在第一个点击的链接中添加一个类,并没有做我想要的。我想在活动/打开链接/标记中添加一个类,当单击另一个链接/标记时,我希望删除该类并将其添加到最新点击的项目中:

$(document).on('click', '#p'+index, function(){
        infowindow.open(map, marker);
        map.setCenter(marker.getPosition());

        if ($('#listdata li').hasClass('bounce')) {
            $(this).removeClass( "bounce" ); 
        } else {
            $(this).addClass( "bounce" );
        }

    });

我做错了什么?

2 个答案:

答案 0 :(得分:0)

以下是工作演示:http://jsfiddle.net/silpa/3xkuybrf/6/

替换以下行:

if ($('#listdata li').hasClass('bounce')) {
    $(this).removeClass( "bounce" ); 
} else {
    $(this).addClass( "bounce" );
}

以下行:

$('#p'+index).addClass('bounce').siblings().removeClass('bounce');

上面的代码行在你单击div时添加了类,下面的代码在你标记标记时将类添加到相关的div:

google.maps.event.addListener(marker, 'click', function() {
   $('#p'+index).addClass('bounce').siblings().removeClass('bounce');
   infowindow.open( map, marker );
});

答案 1 :(得分:0)

只需将您的if语句替换为以下两行:

$('#listdata div').removeClass("bounce");
$(this).addClass("bounce");

这样做:将退回课程移至所有#listdata div并将其添加到当前元素。