jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – google maps v3 setMap在尝试清除所有标记时未定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_618_2@
我见过这里有人可以解释这个功能

// REMOVE All MARKERS FUNCTION
    // Removes all markers currently on map
    // PARAMS: None
    function removeAllMarkers(){// removes all markers from map
        if (markersArray) {
            for (i in markersArray) {
                markersArraY[i].setMap(null);
                markersArray = [];
                markersInfoArray = [];
            };
        };
    };

但我收到一个javascript错误

打破错误@H_659_12@markersArray [i] .setMap不是函数

页面位于:http://www.focus-on-plants.com/locator.php

有任何想法吗???

< ————— ———————更新>

我尝试了sugestions并将MarkersArray = []和markersInfoArray = []移动到for循环的外侧,所以我有这个:

for( var i = 0; i < markersArray.length; i++ ){
    markersArraY[i].setMap(null);
}

但我得到相同的@L_88_2@markersArray [i] .setMap不是一个函数

所以我环顾四周尝试了这种方法

function removeAllMarkers(){// removes all markers from map
    alert('REMOVE MARKERS - markersArray count:'+ markersArray.length);
    while(markersArray[0]){
        markersArray.pop().setMap(null);
        markersInfoArray.pop()
    }
    markersArray.length = 0;
    markersInfoArray.length = 0;
};

我仍然得到同样的错误,是什么给出的?它几乎就像setMap()不存在一样,我在另一个线程here中读到它从set_map变为setMap()但是那些对我来说也不适合:(

@H_618_2@

解决方法

我和你有同样的问题.但是将for-in循环更改为实际循环(如建议 here,修复它.

删除标记时无需创建新的google.maps.marker.

示例代码

var markersArray = [];

function addMarker() { var marker = new google.maps.Marker({ position: latlng,map: map }); markersArray.push(marker); }

function removeMarker() { if (markersArray) { for (i=0; i < markersArray.length; i++) { markersArraY[i].setMap(null); } markersArray.length = 0; } }

@H_618_2@ @H_618_2@
@H_618_2@
@H_618_2@

大佬总结

以上是大佬教程为你收集整理的jquery – google maps v3 setMap在尝试清除所有标记时未定义全部内容,希望文章能够帮你解决jquery – google maps v3 setMap在尝试清除所有标记时未定义所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。