jQuery /原型冲突

我正在使用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,下拉列表不起作用。

  1. 工作下拉: http : //www.myreoforeclosures.com/_menutestfromcode.html (prototype.js已注释掉)

  2. 不工作下拉: http : //www.myreoforeclosures.com/_menutestfromcode2.html (原型.js工作)

我已经尝试了jQuery网站上建议的jQuery noConflict()解决方案的许多变体,但对于我的生活,我无法解决冲突。 我已经将上述链接简化为CSS和HTML的基础知识来测试下拉列表。

请注意我正在使用Web 2.0 / CSS / jQuery攀登陡峭的学习曲线,因为这是我第一次尝试使用这些工具设计网站(以前基于表格的网站)。

任何有助于使jQuery和原型协同工作的帮助将不胜感激。 我只能控制jQuery脚本,因此必须对jQuery进行任何解析。 我对prototype.js没有任何控制权。

我怀疑jQuery.noConflict()不起作用的原因是菜单代码继续使用$来引用jQueryfunction。 noConflict()所做的就是从jQuery解除绑定$ global名称。

如果你有任何代码需要$表示“jQuery”,那么必须改为使用jQuery 。 否则,它会拿起Prototype $ ,这当然是一个非常不同的东西。

编辑 – 好吧我终于让你的页面加载(我认为我的网络有问题),所以我看到你使用“$ j”非常一致。 因此我不认为菜单代码中的$问题是一个问题,但我会在这里留下评论,因为noConflict()仍然不是魔术。

再次编辑 – 我会按照Patrick的建议去尝试Prototype 1.4.2。

我看到你正在使用旧版本的jQuery。 你有1.3.2而不是1.4.2。

不确定它是否会有所作为,但也许尝试最新版本。

您可以直接从Google的CDN链接到它:

http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

我有完全相同的问题! 我正在使用Jq 1.6.2和prototype.js,其中包含’RangeError:无效的数组长度’。

我几乎放弃了它,直到我使用谷歌的原型CDN副本,一切都很好。 我想现在的问题是什么问题已经解决了。

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

使用jQuery.noConflict()方法。

格兹,克里斯。

如果该菜单不使用原型,您可以在新块中将$变量重新定义为jQuery(通过自执行匿名函数)。

 (function ($) { // do stuff as usual })(jQuery); 

这两个url的菜单似乎对我有用。 (Firefox 3.6.4)

编辑:它们似乎适合我,因为我首选的浏览器是带有NoScript的Firefox。 我没注意到原型库来自不同的域。 = /

/ headdesk