0

我正在尝试将参数(gmap_settings)传递给包含的外部 js 文件中的函数(初始化)。我的 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) 

我不明白我错过了什么。

4

1 回答 1

1

你为什么认为这$(document).initialize会起作用?

您可以在外部 javascript 文件中实现模块模式并返回一个对象并在该对象上调用初始化

var YourModule = (function($) {
    return {
       initialize: function( data ) { alert(data)} 
    };
})( jQuery );

现在你有一个可以使用的变量

var newModule = Object.create(YourModule);
newModule.initialize('This will be alerted')
于 2013-04-20T20:25:44.460 回答