从另一个函数动态运行javascript函数

从另一个函数动态运行javascript函数,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我想使用javascript动态嵌入谷歌地图。但我一直在犯错误:谷歌没有定义。我正在从另一个函数调用map函数 这就是我尝试过的 //The below if statement is run by a send function which sends a POST statement and gets MAP as data on success if (res == 'MAP') { $('#map_class').pr

我想使用javascript动态嵌入谷歌地图。但我一直在犯错误:谷歌没有定义。我正在从另一个函数调用map函数

这就是我尝试过的

//The below if statement is run by a send function which sends a POST statement and gets MAP as data on success 
if (res == 'MAP')
                {
                  $('#map_class').prepend('<div class="col2 column1 first" id="mapy"><div class="sec2map" style="overflow:hidden;height:550px;width:100%;"><div id="map"></div><script type="text/javascript" src="https://maps.googleapis.com/maps/api/js"></script></div></div>');
                   init();
                }

function init() {

    var mapOptions = {
    // How zoomed in you want the map to start at (always required)
    zoom: 11,

    // disable UI
    disableDefaultUI: true,

    // The latitude and longitude to center the map (always required)
    center: new google.maps.LatLng(40.6700, -73.9400), // New York

    // How you would like to style the map.
    // This is where you would paste any style found on Snazzy Maps.
     styles: [{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}] };

// Get the HTML DOM element that will contain your map
// We are using a div with id="map" seen below in the <body>
var mapElement = document.getElementById('map');

// Create the Google Map using our element and options defined above
var map = new google.maps.Map(mapElement, mapOptions);

// Let's also add a marker while we're at it
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(40.6700, -73.9400),
        map: map,
        title: 'Snazzy!'
    });
}
//下面的if语句由send函数运行,该函数发送POST语句,并在成功时获取MAP作为数据
如果(res=='MAP')
{
$(“#映射_类”)。前缀(“”);
init();
}
函数init(){
变量映射选项={
//您希望地图从何处开始的放大程度(始终是必需的)
缩放:11,
//禁用用户界面
disableDefaultUI:true,
//地图居中的纬度和经度(始终需要)
中心:new google.maps.LatLng(40.6700,-73.9400),//纽约
//您希望如何设置地图的样式。
//在这里,您可以粘贴时髦地图上的任何样式。
样式:[{“featureType”:“water”,“elementType”:“geometry”,“stylers”:[{“color”:“#e9e9e9”},{“lightness”:17},{“featureType”:“景观”,“elementType”:“geometry”,“stylers”:[{“color”:“#f5f5f5”},{“lightness”:20},{“featureType”:“road.highway”,“elementType”:“geometry.fill”:“geometry.fill”,“stylers”:“{“color”:“ffffff”},{“lightness”:“公路”{“lightness”:},{“公路”},{,“元素类型”:“geometry.stroke”,“stylers”:[{“color”:“#ffffff”},{“lightness”:29},{“weight”:0.2},{“featureType”:“road.Arteral”,“elementType”:“geometry”,“stylers”:[{“color”:“#ffffff”},{“lightness”:18},{“featureType”:“road.local”,“elementType”:“geometry”,“stylers”:[{“color”:“FFFF”},{“lightness”:“lightness”:“},{”16},{“featureType”:几何体、样式器:[{“颜色”:“{F5F5”}、{“亮度”:21}、{“特征类型”:“poi.park”、“元素类型”:“几何体”、“样式器”:[{“颜色”:“{”dededede”}、{“亮度”:21}、{“元素类型”:“标签.文本.笔划”、“样式器”[{“可见性”:“打开”}、{“颜色”:“{”FFFFFFFF”}、{“亮度”:16}、{“标签.文本.填充”、“样式器”}、{36},{“亮度”:40}}},{“元素类型”:“标签.图标”,“样式器”:[{“可见性”:“关闭”}},{“特性类型”:“过渡”,“元素类型”:“几何体”,“样式器”:[{“颜色”:“#f2f2f2”},{“亮度”:19}},{“特性类型”:“管理”,“元素类型”:“几何体.填充”,“样式器”:[{“颜色”:“#FEFEFEFE”},{“亮度”:20},{“特性类型”:“管理”,“元素类型”:“管理”,“元素类型”:几何.stroke,“stylers”:[{“color”:“#fefefe”},{“lightness”:17},{“weight”:1.2}]};
//获取将包含地图的HTML DOM元素
//我们使用的div的id=“map”如下所示
var mapeelement=document.getElementById('map');
//使用上面定义的元素和选项创建Google地图
var map=new google.maps.map(mapElement,mapOptions);
//让我们同时添加一个标记
var marker=new google.maps.marker({
位置:新google.maps.LatLng(40.6700,-73.9400),
地图:地图,
标题:“时髦!”
});
}

当我试图从控制台调用init()时,映射被附加,但当我试图从另一个函数运行时,我得到一个错误;

据我所知,您的问题是, 在正确加载google地图库之前,您正在调用
init()
函数

如果您使用的是jquery

把你的代码包起来

    $(function(){
        // code here
    }); 
还有js 将代码包围在
文档中。加载
函数

我将在您的google脚本上使用,如果成功,请执行prepend(减去脚本标记)和init