Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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_Twitter Bootstrap_Google Maps_Jquery Ui - Fatal编程技术网

Javascript 谷歌地图可拖动标记在折叠类引导中不起作用

Javascript 谷歌地图可拖动标记在折叠类引导中不起作用,javascript,jquery,twitter-bootstrap,google-maps,jquery-ui,Javascript,Jquery,Twitter Bootstrap,Google Maps,Jquery Ui,我想在一个折叠类引导中放置一个GoogleMaps可拖动标记,但它不起作用。如果我把地图放在collapse类之外,一切都正常,那么问题就发生在我把地图放在collapse类里面的时候 这是HTML代码: <div class="col-lg-12" > <div class="panel-group" id="accordion"> <div class="panel panel-default"> <d

我想在一个折叠类引导中放置一个GoogleMaps可拖动标记,但它不起作用。如果我把地图放在collapse类之外,一切都正常,那么问题就发生在我把地图放在collapse类里面的时候

这是HTML代码:

<div class="col-lg-12" >
    <div class="panel-group" id="accordion">
        <div class="panel panel-default">
            <div class="panel-heading">
                <h4 class="panel-title">
                    <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree"> Input Map?</a>
                </h4>
            </div>
            <div id="collapseThree" class="panel-collapse collapse">
                <div class="panel-body">
                    <!--map start-->
                    <div class="col-lg-8" >
                        <div class="form-group">
                            <label>Map</label>
                            <div id="map" class="col-lg-8 tambah-map-canvas"></div>
                        </div>
                    </div>
                    <div class="col-lg-4">
                        <label>Coordinat</label><br/>
                    </div>
                    <div class="col-lg-4">
                        <div class="form-group">
                            <label>Latitude</label>
                            <input type="text" name="lat" id="lat" class="form-control">
                        </div>
                    </div>
                    <div class="col-lg-4">
                        <div class="form-group">
                            <label>Longitude</label>
                            <input type="text" name="lng" id="lng" class="form-control">
                        </div>
                    </div>
                    <div class="col-lg-4">
                        <div class="form-group">
                            <input type="button" id="reset" value="Reset Location">
                            <br/><br/>
                        </div>
                    </div>
                    <!--map end-->
                </div>
            </div>
        </div>
    </div>
</div>
这是JavaScript:

<script type="text/javascript">

    function updateMarkerPosition(latLng) {
        document.getElementById('lat').value = [latLng.lat()];
        document.getElementById('lng').value = [latLng.lng()];
    }

    var myOptions = {
      zoom: 7,
    scaleControl: true,
      center:  new google.maps.LatLng(-6.175500045712664,106.8272084918824),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("map"),
    myOptions);

    var marker1 = new google.maps.Marker({
    position : new google.maps.LatLng(-6.175500045712664,106.8272084918824),
    title : 'lokasi',
    map : map,
    draggable : true
    });

    //updateMarkerPosition(latLng);

    google.maps.event.addListener(marker1, 'drag', function() {
        updateMarkerPosition(marker1.getPosition());
    });
</script>

<script type="text/javascript">
    document.getElementById('reset').onclick= function() {
        var field1= document.getElementById('lng');
        var field2= document.getElementById('lat');
        field1.value= field1.defaultValue;
        field2.value= field2.defaultValue;
    };
</script>
有什么我错过的吗?我做错了什么?
谢谢。

我在地图的id上看不到你的CSS,但如果它没有设置为特定的高度,即400px,那么当你折叠div时,它真的不会显示

因此,最快的解决方案是将地图的高度设置为固定值

然后,无论是否有可拖动的标记,地图都将在折叠时加载

这是一个示例:如果需要,也可以是一个示例

var映射; 变量中心={ lat:-34.397, 液化天然气:150.644 }; 函数初始化映射{ map=new google.maps.Mapdocument.getElementById'map'{ 中心:中心,, 缩放:8 }; var marker=new google.maps.marker{ 位置:中, 地图:地图, 德拉格布尔:是的 }; } 地图{ 高度:400px;/*将此设置为固定值*/ } /*可选:使示例页面填充窗口*/ html, 身体{ 身高:100%; 保证金:0; 填充:0; } 简单地图
创建JSFIDLE以更好地进行分析。