jQuery和Mootools可以一起工作吗?
jQuery和Mootools可以一起工作吗?
如果不是那样的话?
除了noConflict
之外,还有更多noConflict
。
jQuery是一个侵入式库。 它为它接触的每个元素添加了一个内部jQuery123
(对于一些随机化的每个实例值为123
)属性(除了其他原因之外,它与数据或事件处理程序有关)。 在IE中,此属性也会反映为属性。
因此,如果MooTools或任何其他库(或者实际上是一个普通的DOM方法)出现并开始搞乱那些属性/属性,克隆元素或者破坏innerHTML
,他们可能会搞砸这些所谓的唯一标识符,导致jQuery混淆并以一种非常难以调试的方式开始行为不端。
jQuery还摆弄了一堆事件代码,试图让提交/聚焦/模糊/聚焦/聚焦/鼠标中心/鼠标离开事件在浏览器中起作用。 这可能会混淆不期望它的其他库代码。
因此,使用jQuery 1.4,您可以同时使用另一个库,只要它们处理不相互交互的单独元素。 (jQuery 1.3对于它所触及的元素也更为混杂。)
但总的来说,我不会在一个页面上推荐两个主要框架。
jQuery可以在无冲突模式下使用:
jQuery.noConflict();
或者可以使用jQuery
而不是$
。
jQuery('#myelement').hide();
在MooTools中也有一个document.id()
方法可以用来代替$
:
document.id('myelement');
如果您希望能够使用$
,可以尝试下面的代码段:
(function($) { $('#myelement').click(function() { ... }); })(jQuery);
以同样的方式,你可以使用MooTools的$
在Mootools中使用美元安全模式,你应该没问题,因为jQuery不会扩展本机。
只需使用jQuery.noConflict将jQuery分配给$
以外的其他东西:
$
now是指在启动jQuery之前设置的任何内容。 jQuery可以通过jQuery
对象访问。
是的,当然你可以在兼容模式下使用。 但是你必须小心jQuery补充,因为它可能会引起一些麻烦,因为它们没有在兼容模式下编程,并且可能导致与其他库补充的冲突。 要修复此问题,您只需在补充中更改每个jQuery的$
希望这可以帮助。