我的一个javascript变量未定义,我该怎么办?

$(function(){

    //Location was "set". Perform actions.
    $("#geocodesubmit").click(function(){
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            $("#map_canvas").show();
            var myOptions = {
                zoom: 15,
                center: results[0].geometry.location,
                mapTypeControl:false,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                scrollwheel:false,
            };
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  
            var marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location,
                    draggable:true
            });
         } 
       });

        return false;
    });

    //Marker was dragged. 
    google.maps.event.addListener(marker,"dragend",function(){
            alert('hi');
    });
});
正如您在此处看到的,当用户点击按钮时,我会生成一个新的Googleѭ1和一个新的
marker
。但是,问题在于标记没有被绑定。 加载此页面时,出现错误:
Uncaught ReferenceError: marker is undefined
。 我猜是因为在单击按钮之前不会启动标记。我如何成功约束市场? (我更喜欢在单击按钮后加载地图,因为在页面加载时加载地图然后隐藏它会出现显示问题)     
已邀请:
addListener
调用移动到
click
处理程序。     
试试这个吧
$(function () {
    var marker;
    //Location was "set". Perform actions.
    $("#geocodesubmit").click(function () {
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({
            'address': address
        }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                $("#map_canvas").show();
                var myOptions = {
                    zoom: 15,
                    center: results[0].geometry.location,
                    mapTypeControl: false,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    scrollwheel: false,
                };
                var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
                marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location,
                    draggable: true
                });
            }
        });

        return false;
    });
    //Marker was dragged. 
    google.maps.event.addListener(marker, "dragend", function () {
        alert('hi');
    });
});
    

要回复问题请先登录注册