jQuery和Mootools可以一起工作吗?

时间:2010-07-28 12:29:13

标签: jquery mootools

jQuery和Mootools可以一起工作吗?

如果不是那样的话?

5 个答案:

答案 0 :(得分:8)

除此之外还有noConflict

jQuery是一个侵入性的库。它将内部jQuery123(对于某些随机化的每个实例值的123)属性添加到它所触及的每个元素(除了其他原因之外,它与数据或事件处理程序有关)。在IE中,此属性也会反映为属性。

因此,如果MooTools或任何其他库(或者实际上是一个普通的DOM方法)出现并开始搞乱那些属性/属性,克隆元素或黑客innerHTML,那么他们可能会搞砸这些所谓的唯一标识符,导致jQuery混淆并以非常难以调试的方式开始行为不端。

jQuery还会摆弄一堆事件代码,试图让提交/焦点/模糊/焦点/焦点/鼠标中心/鼠标离开事件在浏览器中起作用。这可能会混淆不期望它的其他库代码。

因此,使用jQuery 1.4,您可以同时使用另一个库,只要它们处理不相互交互的单独元素。 (jQuery 1.3对于它所触及的元素也更为混杂。)

但总的来说,我不会在一个页面上推荐两个主要框架。

答案 1 :(得分:2)

jQuery可以在无冲突模式下使用:

jQuery.noConflict();

或可以使用jQuery代替$

jQuery('#myelement').hide();

同样在MooTools中,可以使用document.id()方法代替$

document.id('myelement');

如果您希望能够使用$,可以尝试下面的代码段:

(function($) {

   $('#myelement').click(function() {
       ...
   });


})(jQuery);

以同样的方式,你可以使用MooTools的$

答案 2 :(得分:1)

在Mootools中使用美元安全模式,你应该没事,因为jQuery不会扩展本机。

答案 3 :(得分:0)

只需使用jQuery.noConflict将jQuery分配给$以外的其他内容:

<script>
   jQuery.noConflict();
</script>

$现在引用您在启动jQuery之前设置的任何内容。 jQuery可以通过jQuery对象访问。

答案 4 :(得分:0)

是的,当然可以在兼容模式下使用。但是你必须小心jQuery补充,因为它可能会引起一些麻烦,因为它们没有在兼容模式下编程,并且可能导致与其他库补充的冲突。 要解决此问题,您只需在补充内容中更改$ jQuery

希望这会有所帮助。