Почему я не могу поместить функцию ниже в jQuery(document).ready(function() { }
?
function csf_map_maker_js( args ) {
// Default js args. Args passed to function will override these.
var default_args = {
width : 610,
height : 400,
latitude : 37.93,
longitude : -75.09,
zoom : 8,
mtype: 'ROADMAP',
encoded_points: ' blah blah',
id: 'csf_map_canvas',
hood: 'My Neighborhood'
};
for ( var index in default_args ) {
if ( typeof args[index] == "undefined" ) {
args[index] = default_args[index];
}
}
var latlng = new google.maps.LatLng(args['latitude'], args['longitude']);
var encodedPoints = args['encoded_points'];
var decodedPoints = google.maps.geometry.encoding.decodePath(encodedPoints);
var myOptions = {
zoom: parseInt( args['zoom'] ),
center: latlng,
mapTypeId: google.maps.MapTypeId[args['mtype']],
streetViewControl: true,
zoomControl: true,
panControl: true
};
csf_map = new google.maps.Map(document.getElementById( args['csf_id'] ), myOptions);
var encodedPolygon = new google.maps.Polyline ({
strokeColor: "#0000FF",
strokeOpacity: 0.55,
strokeWeight: 5,
path: decodedPoints,
fillOpacity: 0,
clickable: false,
map: csf_map
});
}
Если я поставлю его снаружи, блок (document) .ready будет работать (хотя я думаю, что некоторые другие функции вызываются до загрузки карты). Код для плагина WordPress.
Функция вызывается в php-скрипте следующим образом:
$csf_map_output .= '<div id="csf_map_canvas" style="width:'. $atts['width'].'px; height: '. $atts['height'] .'px;"></div>';
$csf_map_output .= '<script>var csf_map_params = ' . json_encode( $atts ) . '; csf_map_maker_js( csf_map_params );</script>';
return $csf_map_output;
Нужно ли менять способ вызова функции в скрипте php, когда он внутри jQuery(document).ready(function() { }
?