我正在尝试将参数(gmap_settings)传递给包含的外部js文件中的函数(initialize)。我的php文件看起来像这样:
<?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)
我不明白我错过了什么。
答案 0 :(得分:1)
为什么你认为$(document).initialize
会起作用?
您可以在外部javascript文件中实现模块模式并返回一个对象并在该对象上调用initialize
var YourModule = (function($) {
return {
initialize: function( data ) { alert(data)}
};
})( jQuery );
现在你有一个可以使用的变量
var newModule = Object.create(YourModule);
newModule.initialize('This will be alerted')