【发布时间】:2012-05-08 06:51:39
【问题描述】:
我正在为在 html 文档末尾嵌入 jQuery 的 cms 编写插件。
我确实在我的模板代码中动态定义了一些变量:
<script>
var name = '<?php echo $nameTakenFromTheDatabase; ?>';
</script>
此代码是我的插件的一部分,它不是嵌入在每个页面上。因此,name 并不是在每个页面上都定义的。
我也确实在一个单独的文件中有这个 Javascript 代码(由 cms 自动添加到页面末尾):
var MyNamespace = (function() {
MyClass = function(name) {
// Do something with name
}
return {
MyClass: MyClass
}
})();
如果 jQuery 嵌入在顶部,我会在我的模板代码中做这样的事情:
<script>
var name = '<?php echo $nameTakenFromTheDatabase; ?>';
$(document).ready(function() {
new MyNamespace.MyClass(name);
});
</script>
但是,由于 jQuery 包含在底部,我不能这样做($ 尚未定义)。我也不能只将 jQuery-DomReady 调用添加到单独的代码文件中,因为这是在每个页面上执行的,但 name var 并未在每个页面上初始化并破坏代码。
我能做什么?好旧的 document.ready 是明智的做法吗?
【问题讨论】:
-
根据您提出的解决方案和您描述的问题,我会说“好旧的 document.ready”是一个明智的方法。当然,如果你有一个更复杂的问题,但你在这里简化了它,那么我会投票给@aaberg 解决方案。
标签: javascript jquery footer