繁体   English   中英

将jquery变量定义为超出范围的函数

[英]Defining jquery variable into function that's out of scope

我正在尝试将参数(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) 

我不明白我在想什么。

您为什么认为$(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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM