google-maps - 我如何知道哪个标记正在被 Google Maps API 拖动事件拖动?

Google Maps V3 API 中的“drag”、“dragstart”和“dragend”事件分别将 mouseEvent 传递给已注册的回调函数。

但是 - 此事件不包含有关哪个标记 被拖动的任何信息。我该如何确定?

如果您只查看“dragend”事件,这会更加复杂 - 它只有坐标,甚至无法从坐标推断。

我假设必须有一种简单的方法来确定正在拖动哪个标记...

最佳答案

我会在创建时使用监听器将拖动事件附加到标记。

google.maps.event.addListener(marker, 'dragend', function() {
                //do something with the event.
            });

这是一个 fiddle 示例:http://jsfiddle.net/2YQg6/10/ (不要介意我刚刚编辑了一个我以前用来处理可拖动标记的 fiddle 的其他东西。)

相关代码在标记创建循环中:

//geo code and build markers for each list item.
for (var i = 0; i < $listItems.length; i++) {
    geocoder.geocode({
        'address': $($listItems[i]).text()
    }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var marker = new google.maps.Marker({
                position: results[0].geometry.location,
                map: map,
                draggable: true,
                originalPos: results[0].geometry.location
            });

            google.maps.event.addListener(marker, 'dragend', function() {
                infoWindow.setContent("marker originally at this position: " + this.originalPos + " was dragged to: " + this.position);
                infoWindow.open(map, this);
            });


            markers.push(marker);
        }        

});
}

https://stackoverflow.com/questions/7366595/

相关文章:

maven-2 - Maven : Could not transfer artifact Erro

csv - 如何使用 RSqlite 将 sqlite 导出为 CSV?

jsf - 如何注入(inject)不同的子类作为 ManagedProperty JSF 2?

python - os.walk 某些文件类型到现有的 ZipFile?

python - 在 Matplotlib 中设置颜色图的范围

xml - Spring:java.util.Locale 类型的 bean 的 Autowirin

maven-2 - 来自另一个模块的 Maven 模块属性

python - 如何在 setup.py 中为 cython 设置 sysroot

regex - Nginx:如何重写除图像以外的所有 URL?

spring - 无法从 InputStream : Invalid Content-Type:te