Я пытаюсь передать paramater (gmap_settings) функции (инициализации), которая находится во включенном внешнем js-файле. Мой файл PHP выглядит следующим образом:Определение переменной jquery в функции, которая выходит за рамки
<?php
$setting = array(
'zoom' => 8
);
$json = json_encode($setting);
?>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($) {
var gmap_settings = $.parseJSON ('<?php echo $json; ?>');
--> google.maps.event.addDomListener(window, 'load', $(document).initialize(gmap_settings));
});
//]]>
</script>
Для простоты, позволяет говорить о том, что внешний JS файл выглядит следующим образом:
(function($) {
var initialize = function(data) { alert(data); };
})(jQuery);
Независимо от того, что я стараюсь, я не могу понять, как передать gmap_settings в initialize()
. Я пробовал функцию initialize()
во внешнем файле:
$(document).initialize.gmap_settings
$(document).initialize({gmap_settings})
initialize(gmap_settings)
Я не понимаю, что я пропускаю.
No. Параметр ' var initialize' является * локальной переменной *. Это означает, что вы * не можете * получить доступ к нему извне. – Bergi
Вместо того, чтобы пытаться проанализировать неэкранированную эхо-строку JSON, просто используйте 'var gmap_settings = Php echo $ json; ?>; ' – Bergi
' $ (document) .initialize' похоже, что вы пытаетесь [написать плагин] (http://docs.jquery.com/Plugins/Authoring) – user2264587