你好有一个显示HTML页面的php模板。在其中有一个js文件的调用,初始化一些jquery插件。
在模板上我有这段代码:
(function($) {
$(document).ready(function(){
var adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>;
var adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>;
var adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>;
});
})(jQuery);
然后在init.js页面上我打电话给adlow,adhigh和adtickno。 我得到变量未定义的错误。
php正在返回正确的值。但是外部init文件没有得到它们。我是否需要做一些特殊的事情才能使init文件能够使用这些变量? 我所做的就是插上它们......
谢谢,我对这些页面之间的互动感到有些模糊。答案 0 :(得分:2)
它们需要是其他页面的全局变量才能使用它们。尝试删除var
。或命名空间,这是更好的做法:
$(document).ready(function(){
MYAPP = {};
MYAPP.adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>;
MYAPP.adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>;
MYAPP.adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>;
});
答案 1 :(得分:2)
在 init.js
加载之前,您需要在全局范围中打印它们。
<script>
var adlow = <?php echo $jSeblod->disparities_tick_lower->value ?>;
var adhigh = <?php echo $jSeblod->disparities_tick_upper->value ?>;
var adtickno = <?php echo $jSeblod->disparities_tick_divisions->value ?>;
</script>
<script src="init.js"></script>
在$(document).ready()
期间打印它们毫无意义。 init.js
之前已经加载了。