在我的一个PHP项目中,其中一部分由其他人完成。所有js脚本都加载到页脚文件中。 html 在页脚文件处关闭。 如何在包含页脚文件之前使用jquery函数?由于在页脚文件之后使用它会在 html 结束后显示。当我厌倦了在页脚之前使用jquery函数时,我得到了js错误 $ not defined 等等。我搜索了很多类似的问题但是找不到解决方案。我目前无法更改文件包含顺序,因为其他人已经完成了此操作。任何帮助将不胜感激。
答案 0 :(得分:2)
如果像你提到的那样你完全没有控制包含jQuery脚本的位置,你可以设置计时器来检查jQuery何时就绪,例如:
<script>
var i = setInterval(function() {
if ($) {
clearInterval(i);
$(document).ready(function(){
alert('Ready!');
})
}
}, 100)
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
但是否则 - 如果你可以控制它 - 在你的代码之前包括它们。
答案 1 :(得分:1)
此代码只能在现代浏览器中正常运行(IE> 8)
<div class="jq"></div>
<script>
document.addEventListener('DOMContentLoaded', function(){
$('.jq').html('working');
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 2 :(得分:1)
I sometimes did something like this:
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"));
That allows you to execute a callabck function when jQuery is available
EDIT: fixed some copy-paste errores