Javascript 在脚本包含之前使用jquery?

Javascript 在脚本包含之前使用jquery?,javascript,jquery,Javascript,Jquery,在我的一个PHP项目中,它的一部分是由其他人完成的。所有js脚本都加载到footer文件中。html在页脚文件处关闭。 在包含footer文件之前,如何使用jquery函数?。因为在页脚后使用它,文件将在html关闭后显示它。当我厌倦了在页脚之前使用jquery函数时,我得到了js错误$notdefined等等。。我搜索了许多类似的问题,但找不到解决方案。我目前无法更改文件包含顺序,因为其他人已经这样做了。如有任何帮助,我们将不胜感激。如您所述,如果您完全无法控制jQuery脚本的包含位置,您可

在我的一个PHP项目中,它的一部分是由其他人完成的。所有js脚本都加载到footer文件中。html在页脚文件处关闭。 在包含footer文件之前,如何使用jquery函数?。因为在页脚后使用它,文件将在html关闭后显示它。当我厌倦了在页脚之前使用jquery函数时,我得到了js错误$notdefined等等。。我搜索了许多类似的问题,但找不到解决方案。我目前无法更改文件包含顺序,因为其他人已经这样做了。如有任何帮助,我们将不胜感激。

如您所述,如果您完全无法控制jQuery脚本的包含位置,您可以设置计时器以检查jQuery何时准备就绪,例如:


var i=setInterval(函数(){
如果(美元){
间隔时间(i);
$(文档).ready(函数(){
警惕(“准备就绪!”);
})        
}
}, 100)
如您所述,如果您完全无法控制jQuery脚本的包含位置,则可以设置计时器来检查jQuery何时准备就绪,例如:


var i=setInterval(函数(){
如果(美元){
间隔时间(i);
$(文档).ready(函数(){
警惕(“准备就绪!”);
})        
}
}, 100)

此代码只能在现代浏览器(IE>8)中正常运行


document.addEventListener('DOMContentLoaded',function(){
$('.jq').html('working');
});

示例-

此代码只能在现代浏览器(IE>8)中正常运行


document.addEventListener('DOMContentLoaded',function(){
$('.jq').html('working');
});

示例-

我有时会做这样的事情:

    function JQueryManager(callback, thisArgument) {

        this.execute = function() {
            if (typeof jQuery == "undefined") {
                console.log("Waiting for jQuery...");
                var self = this;
                var selfArgs = arguments;
                setTimeout(function() {
                    self.execute(selfArgs)
                }, 100)
            } else {
                console.log("Found jQuery. Version: " + jQuery.fn.jquery);
                callback.apply(thisArgument, arguments)
            }

        }
    }

    function myCallback(results) {
        alert("found " + results.length + " results")
    }


    var jQueryManager = new JQueryManager(myCallback);
    jQueryManager.execute($("div"));
这允许您在jQuery可用时执行callabck函数


编辑:修复了一些复制粘贴错误

我有时会这样做:

    function JQueryManager(callback, thisArgument) {

        this.execute = function() {
            if (typeof jQuery == "undefined") {
                console.log("Waiting for jQuery...");
                var self = this;
                var selfArgs = arguments;
                setTimeout(function() {
                    self.execute(selfArgs)
                }, 100)
            } else {
                console.log("Found jQuery. Version: " + jQuery.fn.jquery);
                callback.apply(thisArgument, arguments)
            }

        }
    }

    function myCallback(results) {
        alert("found " + results.length + " results")
    }


    var jQueryManager = new JQueryManager(myCallback);
    jQueryManager.execute($("div"));
这允许您在jQuery可用时执行callabck函数


编辑:修复了一些复制粘贴错误

您不能在导入jQuery的
标记之前使用jQuery。您可以将代码放入外部.js文件中,并从加载jQuery的相同页脚代码加载它。只需在页眉中包含所有Javascript。。。(和几乎所有网站一样)@PLAudet实际上建议(这是一个非常好的主意)将脚本标记放在
结束标记之前。实际上,现在最好将它们放在标题中,并使用async和defer属性。请参阅google关于阻止js的问题和链接。您不能在导入jQuery的
标记之前使用jQuery。您可以将代码放入外部.js文件中,并从加载jQuery的相同页脚代码加载它。只需在页眉中包含所有Javascript。。。(和几乎所有网站一样)@PLAudet实际上建议(这是一个非常好的主意)将脚本标记放在
结束标记之前。实际上,现在最好将它们放在标题中,并使用async和defer属性。请参阅google关于阻止js的问题和链接。