我正在使用jQuery hoverIntent.js脚本来创建一个巨大的下拉菜单系统,该系统的灵感来自Son Tonaka的大型下拉/ CSS& jQuery sohtanaka.com/web-design/mega-drop-downs-w-css-jquery。我的页面包含一个由第三方供应商插入的prototype.js脚本(这是一个加载属性搜索和潜在客户管理内容的房地产网站)。它在标签之前加载到最后。我的菜单脚本和jQuery调用加载在标记的顶部。下面我已经包含了2个链接。第一个链接我已经注释掉对prototype.js的调用,菜单工作正常。第二个链接调用了prototype.js,下拉列表不起作用。
工作下拉:http://www.myreoforeclosures.com/_menutestfromcode.html(prototype.js注释掉)
不工作下拉:http://www.myreoforeclosures.com/_menutestfromcode2.html(原型.js工作)
我已尝试过jQuery网站上建议的jQuery noConflict()解决方案的许多变体,但对于我的生活,我无法解决冲突。我已经将上述链接简化为CSS和HTML的基础知识来测试下拉列表。
请注意我正在使用Web 2.0 / CSS / jQuery攀登陡峭的学习曲线,因为这是我第一次尝试使用这些工具设计网站(以前基于桌面的网站)。
任何有助于让jQuery和原型协同工作的帮助将不胜感激。我只能控制jQuery脚本,因此必须对jQuery进行任何解析。我对prototype.js没有任何控制权。
答案 0 :(得分:3)
我怀疑jQuery.noConflict()
不起作用的原因是菜单代码继续使用$
来引用jQuery功能。 noConflict()
所做的只是解除$
jQuery
全局名称的绑定。
如果您有任何希望$
代表“jQuery”的代码,则必须将其更改为使用jQuery
。否则,它会选择原型$
,这当然是一个非常不同的东西。
编辑 - 好吧我终于加载了你的页面(我认为我的网络有问题),所以我看到你正在使用“$ j”非常一致。因此,我不认为菜单代码中的$
问题是一个问题,但我会在这里留下评论,因为noConflict()
不是魔术仍然是正确的。
再次编辑 - 我会按照Patrick的建议去尝试原型1.4.2。
答案 1 :(得分:1)
我看到你正在使用旧版本的jQuery。你有1.3.2而不是1.4.2。
不确定它是否会有所作为,但也许会尝试最新版本。
您可以直接从Google的CDN链接到它:
http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
答案 2 :(得分:1)
我有完全相同的问题!我正在使用Jq 1.6.2和prototype.js,其中包含'RangeError:无效的数组长度'。
我几乎放弃了它,直到我使用谷歌的原型CDN副本,一切都很好。我想现在的问题是什么问题已经解决了。
答案 3 :(得分:0)
答案 4 :(得分:0)
这两个网址的菜单似乎对我有用。 (Firefox 3.6.4)
编辑:它们似乎对我有用,因为我首选的浏览器是带有NoScript的Firefox。我没注意到原型库来自不同的域。 = /
/ headdesk
答案 5 :(得分:0)
如果该菜单不使用原型,您可以在新块中将$
变量重新定义为jQuery(通过自执行匿名函数)。
(function ($) {
// do stuff as usual
})(jQuery);