我在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>
希望这有助于澄清情况。