SO网友:D. Dan
我将执行以下操作:
将具有唯一名称的短代码传递给它们根据该名称构建具有唯一id的div和具有唯一名称的jsfunction
在模板末尾加载google脚本(其中很可能有google地图)运行该功能以在视图中滚动地图时显示地图不会讨论如何将属性传递给shortcode,但代码应该如下所示:
function map_shortcode($atts){
//deal with $atts
?>
<div id="map-<?php echo $unique_name ?>"></div>
<script>
function mapInit<?php echo $unique_name ?>() {
var fenway = {lat: <?php echo $lat; ?>,
lng: <?php echo $lng; ?>};
var map = new google.maps.Map(document.getElementById(\'map-<?php echo $unique_name ?>\'), {
center: fenway,
zoom: <?php echo $zoom; ?>
});
}
$(document).ready(function( $ ) {
functionWhenUserScrollsToMap(){ // I hope you can figure it out how to implement this
mapInit<?php echo $unique_name ?>();
}
} );
</script><?php
}
重要的是:
您只需加载一次google地图脚本每个地图画布都应该有唯一的id。每个地图js函数都应该有唯一的名称加载地图脚本后,可以调用函数对于这一点,滚动后的文档准备功能应该足够了您可能不需要异步加载google脚本