当jquery.js加载后,内联jQuery脚本中断(在页脚中)

时间:2014-02-19 17:59:37

标签: jquery

我在页脚中加载jquery.min.js。只要在脚本包含之前文档正文中没有内联jquery调用,它就可以正常工作。

例如,

<div><script>jQuery(document).ready(function(){//jQuery('anything')});</script></div>

引发错误:

  

未捕获的ReferenceError:jQuery未定义(索引):63(匿名   功能)

第63行引用内联脚本。在此引用之后,jquery.js包含在页脚中。有没有办法让这个工作并将jQuery留在页脚?

2 个答案:

答案 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循环

如果有帮助,请告诉我。

相关问题