为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery与原型冲突

jQuery与原型冲突

慕森卡 2019-12-04 12:33:20
我在html页面中使用jQuery AutoComplete插件,在这里我也有使用原型的手风琴菜单。它们都可以完美地分开工作,但是当我尝试在单个页面中实现这两个组件时,出现了一个我无法理解的错误。未捕获的异常:[异常...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsIDOMViewCSS.getComputedStyle]” nsresult:“ 0x80004005(NS_ERROR_FAILURE)”“位置:” JS框架:: file:/// C:/ Documents and Settings /Administrator/Desktop/website/js/jquery-1.2.6.pack.js ::匿名::第11行”数据:无]我发现与jQuery冲突的文件是“ effects.js”,由手风琴菜单使用。我尝试用较新的版本替换此文件,但较新的版本似乎破坏了手风琴的行为。我的猜测是修改了手风琴中使用的“ effects.js”文件以获得手风琴演示输出。我还尝试使用jQuery需要避免与其他库冲突的重写方法,但这种方法不起作用。我从stickmanlabs.com获得了手风琴演示。并且jQuery AutoComplete可以从jQuery网站获得。还有其他人遇到过这个问题吗?
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

有两种可能的解决方案:与旧版本的Scriptaculous和jQuery发生冲突(Scriptaculous尝试错误地扩展本机Array原型)-首先尝试升级Scriptaculous的副本。


如果那不起作用,您将需要使用noConflict()(如上所述)。但是,有一个陷阱。由于您要包含一个插件,因此需要按特定顺序进行包含,例如:


<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>

希望这有助于澄清情况。


查看完整回答
反对 回复 2019-12-04
?
长风秋雁

TA贡献1757条经验 获得超7个赞

jQuery使您可以将jQuery函数从$其他重命名,以避免名称空间与其他库冲突。


你可以做这样的事情


var J = jQuery.noConflict();


查看完整回答
反对 回复 2019-12-04
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

在这种情况下,我真的看不出同时使用两个库的原因。


您可以使用Prototype(实际上是Scriptaculous)的Ajax.Autocompleter并抛弃jQuery,也可以使用jQuery的Accordion摆脱Prototype。


一次使用两个库并不是一个好主意,因为:


它们可能导致冲突。

通过将它们都包含在内,您可以迫使用户同时下载它们。这不是束手无策的方法。


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 438 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信