正确的调用javascript函数的方法

时间:2011-08-22 01:17:49

标签: javascript function google-maps marker

我正在尝试通过添加国家/地区名称来提取此website中的Google地图标记示例。

由于google maps会返回一个包含每个地址详细信息的数组,因此我需要迭代数组以查找条目,例如:为“国家”。由于我想重用这段代码,我创建了一个函数。

但我不确定如何正确调用此功能(此处称为 find(components,item))。

我没有从find函数返回任何内容。 如何在select函数中正确调用find函数? * 为什么我得到一个空的回报会有不同的错误? *

感谢您的意见和建议!

$(document).ready(function() { 

initialize();

$(function() {
    $("#address").autocomplete({
        //This bit uses the geocoder to fetch address values
        source: function(request, response) {
            geocoder.geocode( {'address': request.term }, function(results, status) {
                response($.map(results, function(item) {
                    return {
                        label:  item.formatted_address,
                    value: item.formatted_address,
                    components: item.address_components,
                    latitude: item.geometry.location.lat(),
                    longitude: item.geometry.location.lng()
                    }
                }));
            })
        },

        // address_component selection
        find: function(components, item) {
            for(var j=0;j < components.length; j++){
                for(var k=0; k < components[j].types.length; k++){
                    if(components[j].types[k] == "country"){
                        return components[j].long_name;
                    }
                }
            }
        },

    //This bit is executed upon selection of an address
    select: function(event, ui) {
        $("#latitude").val(ui.item.latitude);
        $("#longitude").val(ui.item.longitude);
        $("#country").val(this.find(ui.item.components, "country"));
        var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
        marker.setPosition(location);
        map.setCenter(location);
    }
    });
});

1 个答案:

答案 0 :(得分:0)

find()函数在autocomplete选项对象中定义。

如果您想访问查找功能,您必须在自动填充选项之外定义它或获取指向它的指针:

var find = $(event.target).data("autocomplete").options.find;

这是因为jQuery使用附加到侦听器的元素更改函数的上下文。