我想遵循将所有 JavaScript 放在页面最底部的一般准则,以加快加载时间并处理网络应用程序 (Django) 中 jQuery 版本冲突的一些讨厌问题。
但是,我时不时会有一些代码,这些代码依赖于 jQuery,但必须在页面的更上方(基本上不能将代码移至底部)。
我想知道是否有一种简单的方法来对此进行编码,以便即使尚未定义 jQuery,代码在定义 jQuery 时也能正常工作。
下面的内容,我不得不说,有点矫枉过正,但我不知道还有其他方法可以做到这一点:
function run_my_code($) {
// jquery-dependent code here
$("#foo").data('bar', true);
}
var t = null;
function jquery_ready() {
if (window.jQuery && window.jQuery.ui) {
run_my_code(window.jQuery);
} else {
t = window.setTimeout(jquery_ready, 100);
}
}
t = window.setTimeout(jquery_ready, 100);
实际上,我可能需要在一个页面中多次使用代码,这些代码不知道其他代码,所以即使这样可能也行不通,除非我将每个 jquery_ready 重命名为 jquery_ready_guid、jquery_ready_otherguid 等等。
澄清
为了清楚起见,我将包含到 JavaScript ( <script type="text/javascript" src="jquery.min.js" />
) 的代码放在页面的最底部,就在 </body>
之前.所以我不能使用 $
.
最佳答案
简单使用$(document).ready();
的纯javascript版本:
document.addEventListener("DOMContentLoaded", function(event) {
//you can use jQuery there
});
关于javascript - 在加载 jQuery 之前处理依赖于 jQuery 的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298430/