现在我非常困惑。我们的网站已经有一年的jQuery手风琴,没有任何麻烦。它在大约一天前工作正常。然后,在没有任何改变的情况下,手风琴不再在IE11和最新的Firefox中运行。但是,最新的Chrome和Safari似乎正确显示了该网站。我们网站的几乎每一页都使用手风琴;这是其中之一:
http://www.americanaccents.com/napkin-color-tradition.html
在IE中运行F12开发者工具,我看到消息“对象不支持属性或方法'手风琴'。”违规行代码(具体来说,第三行)是:
<script>
$(function() {
$( "#Accordion1" ).accordion({
heightStyle: "content",
autoHeight: false
});
});
</script>
知道这里发生了什么吗?这是一个优先考虑的问题,但我不知道还能在哪里转。
答案 0 :(得分:3)
我发现很难相信这种情况发生了“没有任何改变[你]的结果。”
你已经加载了jQuery总共三次。加载你的jQuery手风琴后,三个中的两个来了。所有这些都是在SpryAccordion之后。当加载像jquery.ui.accordion
这样的插件时,它会将自身附加到jQuery对象 - $
。当您加载另一个jQuery脚本时,$
将重置为该脚本的实例,从而消除该插件。
如果没有改变,这几乎完全不可能。有人在head
的末尾添加了两个jQuery提取(以及其他重复的内容)。如果此内容来自第三方服务,您应该尽一切力量消除这些远程依赖项。将这样的代码动态地拖入您的网站是非常危险的,因为您可以看到它现在正在破坏您的网站。
删除所有重复的jQuery,或确保您的手风琴插件在最后一个之后加载。
顺便说一下,问题应该是duplicate the problem in the question内容。我创建了一个截图,让这个问题在较长时期内对其他人有用,但它仍然是一个很糟糕的内容。没有人在将来寻求帮助应该去你的网站了解问题。
答案 1 :(得分:1)
你有: jQuery库版本:jQuery v1.11.1 | (c)2005年,2014年
您使用的是手风琴库:手风琴版:&#34; 1.10.4&#34; 1.10.4(遗留,对于jQuery1.6 +)
您正在加载
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
两次。
和这个
<script type="text/javascript" src="http://vds.sage.net/pluginsupport/highslide/highslide-full.packed.js"></script>
两次和其他一些东西。
在您提出
请求后加载jQuery手风琴<script src="jQueryAssets/jquery-1.11.1.min.js" type="text/javascript"></script>
BUT !!然后再重新加载jQuery库两次。你正在覆盖已经扩展的jQuery对象,并删除你的
中的jQuery UI手风琴和其他jQuery UI优点<script src="jQueryAssets/jquery.ui-1.10.4.accordion.min.js" type="text/javascript"></script>
另外: http://api.jqueryui.com/1.10/ 他们敦促你升级。 - 在大型应用程序中并不总是一个好主意,似乎1.9的jQuery有一些重大变化。
希望这会有所帮助..
带走: 清理你的HTTP脚本请求,这应该可以解决你的问题