jQuery&Prototype Conflict

前端之家收集整理的这篇文章主要介绍了jQuery&Prototype Conflict前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在html页面中使用jQuery AutoComplete插件,我还有一个使用原型的手风琴菜单

他们都完全独立工作,但是当我试图在一个页面中实现这两个组件,我得到一个错误,我没有能够理解。

uncaught exception: [Exception… “Component returned failure code:
0x80004005 (NS_ERROR_FAILURE) [nsIDOMViewCSS.getComputedStyle]”
nsresult: “0x80004005 (NS_ERROR_FAILURE)” location: “JS frame ::
file:///C:/Documents and
Settings/Administrator/Desktop/website/js/jquery-1.2.6.pack.js ::
anonymous :: line 11” data: no]

我发现与jQuery冲突的文件是由手风琴菜单使用的“effects.js”。我尝试用较新的版本替换这个文件,但较新的似乎破坏了手风琴的行为。

我的猜测是手风琴中使用的“effects.js”文件修改以获得手风琴演示输出。我也尝试使用重写方法jQuery需要避免与其他库冲突,并没有工作。

我从stickmanlabs.com获得了手风琴演示。

而jQuery AutoComplete可以从jQuery site获得。

有没有人遇到过这个问题?

解决方法

有两个可能的解决方案:与旧版本的Scriptaculous和jQuery(Scriptaculous试图不正确地扩展本机Array原型)的冲突 – 首先尝试升级Scriptaculous的副本。

如果这不工作,你将需要使用noConflict()(如上所述)。但是,有一个catch。由于您包含了一个插件,因此您需要按照特定的顺序执行包含,例如:

<script src="jquery.js"></script>
<script src="jquery.autocomplete.js"></script>
<script>
  jQuery.noConflict();
  jQuery(document).ready(function($){
    $("#example").autocomplete(options);
  });
</script>
<script src="prototype.js"></script>
<script src="effects.js"></script>
<script src="accordion.js"></script>

希望这有助于澄清情况。

猜你在找的jQuery相关文章