我正在为在 html 文档末尾嵌入 jQuery 的 cms 编写插件。
我确实在我的模板代码中动态定义了一些变量,如下所示:
<script>
var name = '<?php echo $nameTakenFromTheDatabase; ?>';
</script>
这段代码是我插件的一部分,它没有嵌入到每个页面上。因此,名称不是在每个页面上都定义的。
我也确实在一个单独的文件中有这个 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 调用添加到单独的代码文件中,因为这是在每个页面上执行的,但是名称var 并没有在每个页面上初始化并破坏了代码。
我能做些什么?好的旧 document.ready 是明智的做法吗?