Jquery append() 和 appendTo() 追加多个元素

Jquery append() and appendTo() append multiple elements

我正在尝试延迟加载 google 地图,它应该在触发模式时加载:

$( document ).on( "shown.bs.modal", function(){
        $script = $("<script>", {'type': 'text/javascript', 'src': 'https://maps.googleapis.com/maps/api/js?signed_in=true&callback=initialize'});
        $script.appendTo($("head"));
});

但我有多个脚本行:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?signed_in=true&amp;callback=initialize"></script>

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?signed_in=true&amp;callback=initialize"></script>

控制台:

 You have included the Google Maps API multiple times on this page. This may cause unexpected errors.main.js:59 klmain.js:60 (anonymous function)js?signed_in=true&callback=initialize&_=1424619719408:21 google.maps.Loadmain.js:60 (anonymous function)main.js:61 (anonymous function)

如何只追加一行? 还是有其他方法 (jquery)?

非常感谢。 萨鲁2

您可以检查 google.maps 是否已经可用,当可用时 运行 initialize,否则加载 API:

$( document ).on( "shown.bs.modal", function(){
   if(window.google && window.google.maps){
     initialize();
     return;
   }
        $script = $("<script>", 
                    {'type': 'text/javascript', 
                     'src': 'https://maps.googleapis.com/maps/api/js?signed_in=true&callback=initialize'});
        $script.appendTo($("head"));
});