【问题标题】:mootools and prototype conflictmootools 和原型冲突
【发布时间】:2011-07-28 15:40:25
【问题描述】:

这是我的代码,它一直不起作用,如果我删除原型脚本文件,mootools 工作,如果我删除 mootools 原型工作!这是代码:

<script type="text/javascript" src="js/mootools.js"></script> 
<script type="text/javascript" src="js/imageMenu.js"></script> 
<script type="text/javascript" src="js/prototype.js"></script>

<script type="text/javascript">

            window.addEvent('domready', function(){
                var myMenu = new ImageMenu($$('#imageMenu a'),{openWidth:310, border:2, onOpen:function(e,i){alert(e);}});
            });
</script>

值得一提的是,当我尝试一次时,原型与 MT 一起工作,但原型中的 Ajax.Updater 仍然无法正常工作。

我确实检查了这里关于这个问题的大部分主题,但仍然失败!

【问题讨论】:

  • 简短回答:不可能同时使用这两个框架,因为它们都扩展了 Natives。期间。

标签: mootools prototypejs conflict


【解决方案1】:

我不确定你为什么会想要同时使用原型和 mootools。这肯定会被视为滥用框架......选择一个并坚持下去。如果您无法在其中一个或另一个之间进行选择,请从您甚至根本需要一个框架的基本假设开始,然后从那里决定哪一个适合您的需求。仅仅为了拥有它而使用一个(或多个)是一个糟糕的计划。

两个框架都通过扩展 DOM 来完成它们的功能,因此存在冲突也就不足为奇了。两者都使用$ 作为其扩展功能的入口点。堆叠框架时获得的功能重复量几乎排除了将它们结合使用的可能性,更不用说加载大量不需要的代码的额外开销。

说了这么多,您可以查看this article。这是 mootools 对与其他框架的兼容性/冲突解决的建议。您会注意到,在文章的第一段中,作者给出了与我在这里相同的警告——不要堆叠框架。在极少数非常具体的情况下,这是您唯一的选择,否则您需要认真考虑为什么要采用这种方法。

【讨论】:

  • 谢谢你,Chris,我同意你只坚持一个 FW 但这里的问题是这个动作(Phatfusion 图像菜单)只用 mootools 制作,我也检查它是由 JQuery 制作的,但没有原型。我确实检查了那篇文章,但现在知道如何将它与我的 mootools 功能一起使用,我在函数中有两个 $ 以便将它们都替换为 document.id ?它不会工作!我也尝试使用(Phatfusion Image Menu)的JQuery版本并使用No.Conflict但也没有成功:(
  • 我的意思是,你应该找到一个不同的菜单系统,它使用你已经在使用的框架并提供你需要的功能。如果找不到,您应该 a) 重新考虑框架或 b) 从菜单中重新考虑需要哪些功能。如果您没有找到适合您的预构建原型脚本,为什么不一起迁移到 mootools 呢?如果我驾驶道奇皮卡车并且需要零件,我不会购买福特配件——我什至不看它们,因为它们不适合我的卡车。同样,当您使用原型时,不要购买 mootools。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 2013-10-21
相关资源
最近更新 更多