javascript - 在加载 jQuery 之前处理依赖于 jQuery 的代码

标签 javascript jquery

我想遵循将所有 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/

相关文章:

javascript - 如何在 jQuery 中解析 JSON

jquery - HTML 列表展开悬停最小高度

javascript - Materialise TextArea 不动态变化?

javascript - html中params的意义是什么?

javascript - 单击时禁用右键单击菜单

javascript - 每次出现在页面上时都将某个单词设为斜体?

javascript - ASP.net使用clientID进行父子遍历

调色板生成器的 javascript 源代码

javascript - Closure compiler source map = empty (Chrome) or wrong (Firefox) 代码窗口

javascript - Backbone + 需要 Backbone.localStorage