我在页脚中加载jquery.min.js。只要在脚本包含之前文档正文中没有内联jquery调用,它就可以正常工作。
例如,
<div><script>jQuery(document).ready(function(){//jQuery('anything')});</script></div>
引发错误:
未捕获的ReferenceError:jQuery未定义(索引):63(匿名 功能)
第63行引用内联脚本。在此引用之后,jquery.js包含在页脚中。有没有办法让这个工作并将jQuery留在页脚?
答案 0 :(得分:1)
错误很明显,jQuery没有定义,因此无法使用。最简单的解决方案是在调用内联代码之前加载jQuery库。
如果你绝对不能,你将不得不使用与jQuery(document).ready(...)
不同的东西。这本身并不是一件小事,需要仔细考虑(take a look at this SO question for some ideas)
我注意到你正在使用jQuery(document).ready(...)
而不是$(document).ready(...)
你是否也加载了不同的框架(mootools,prototype等?)如果是这样(并且这些库之前已加载)你可以简单地勾选它们的jQuery(document).ready(...)
答案 1 :(得分:1)
我已经为此正确地创建了一个简单的垫片。它创建了一个全局jQuery(和$)对象,它只能为domReady排队函数。它非常小,因此您可以在HEAD标记中内联它(内联以避免整个dns查找,延迟等问题),然后在您描述的正文中编写的任何代码仍然可以正常运行。
https://github.com/withjam/jqshim-head
shim本质上存储了传递给jQuery()或jQuery()。ready()的所有函数,等待真正的jQuery可用,然后将它们传递给真正的jQuery()调用以继续isDomReady循环
如果有帮助,请告诉我。