Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的一个javascript变量未定义,我该怎么办?_Javascript_Jquery_Html_Css_Google Maps - Fatal编程技术网

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

我的一个javascript变量未定义,我该怎么办?,javascript,jquery,html,css,google-maps,Javascript,Jquery,Html,Css,Google Maps,正如您在这里看到的,当用户单击一个按钮时,我会生成一个新的Googlemap和一个新的marker。但是,问题是标记没有被绑定 加载此页面时,出现错误: 未捕获引用错误:标记未定义 我猜这是因为在点击按钮之前标记不会启动。我如何成功地绑定市场?(我更喜欢在单击按钮后加载地图,因为在页面加载时加载地图,然后将其隐藏时会出现显示问题)将addListener调用移动到click处理程序中。试试这个 $(function(){ //Location was "set". Perform ac

正如您在这里看到的,当用户单击一个按钮时,我会生成一个新的Google
map
和一个新的
marker
。但是,问题是标记没有被绑定

加载此页面时,出现错误:

未捕获引用错误:标记未定义


我猜这是因为在点击按钮之前标记不会启动。我如何成功地绑定市场?(我更喜欢在单击按钮后加载地图,因为在页面加载时加载地图,然后将其隐藏时会出现显示问题)

addListener
调用移动到
click
处理程序中。

试试这个

$(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');
    });
});

为什么会把事情搞得一团糟?您当前的代码打算做什么?在设置变量之前,不能使用它。
$(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');
    });
});