1

您好我需要Mootools来获取我的计时码表,我的lightbox 2原型(我认为),也许还有一些未来的jQuery。
当我启用Mootools时,灯箱2不能在IE中工作,当我禁用它时,灯箱工作正常,但我从我的chronoforms窗体在我的页面上出现错误。Joomla中的jquery,mootools和原型

有没有一种简单易行的方法可以确保您在使用三者时不会出现任何问题?

而类似JQuery.noConflict()不是一个简单的解决方案。

回答

3

您不能让MooTools和Prototype共存。

这是因为它们都改变(延长)本地主机对象(类型),如Element(MooTools的)和ArrayFunctionStringNumber(两者)。你不能noConflict这对于你的生活,每个方法都可以定义一次。

这将是家常便饭,当你引用"foo".contains('oo')和它去String.prototype.contains(例如),如果你拿到的样机的,Mootools的或ES5的实现(MooTools的1.5.1+)。

有时间重新考虑你使用什么,因为你真的应该去一个框架 - 他们都可以单独做你需要的。

你也可以有MooTools的+ jQuery的或原型+ jQuery的,但是

+0

谢谢你,让我更好的下载slimbox 2和通过MooTools togheter使用它(大量的Joomla插件使用它)。我如何使用noconflict,是否必须将每个$都更改为JQuery? – Ruben 2011-04-18 12:47:15

+0

取决于你的版本的mootools。如果你使用的是mootools 1.2.3+,那么它很简单。在加载mootools之前加载jquery,mootools将使用'document.id()'代替$。如果你使用的是较老的mootools,那么你需要'noConflict',你需要在之后加载jquery。将$改为jQuery可以工作或者使用像'(function($){console.log($); // jQuery})(jQuery)这样的闭包;'围绕你的代码 - 将$赋值给它应该在函数内部。只要小心范围管理。如果mootools转到document.id,则相反,只需传递上面的document.id即可。 – 2011-04-18 13:04:26

+0

感谢人,它的工作原理没有改变任何东西,所以jquery可能在mootools之前加载。 – Ruben 2011-04-18 13:09:07