2010-07-28 55 views

回答

8

除了noConflict之外,还有更多。

jQuery是一个侵入性库。它为每个触及的元素添加一个内部的jQuery123(对于一些随机的每个实例值123)属性(这是因为数据或事件处理程序等原因)。在IE中,这个属性也被反映为属性。因此,如果MooTools或任何其他库(或者实际上,一个普通的DOM方法)出现并开始搞乱那些属性/属性,克隆元素或者黑客攻击,他们可能会搞砸这些据称独特的标识符,导致jQuery感到困惑,并以非常难以调试的方式开始行为不端。

jQuery还摆弄了一堆事件代码,试图使提交/焦点/模糊/ focusin/focusout/mouseenter/mouseleave事件工作和跨浏览器冒泡。这可能会混淆不期望它的其他库代码。

所以,使用jQuery 1.4,你可以放弃使用另一个库的同时,只要他们正在处理不相互作用的单独元素。 (jQuery 1.3对于它所触及的元素也更加混杂)。

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

0

只需使用jQuery.noConflict将jQuery分配给别的东西比$

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

$现指无论你将它设置为您发起的jQuery之前。通过jQuery对象可以访问jQuery。

2

jQuery的可以在任何冲突中使用模式:

jQuery.noConflict();

或者可以使用jQuery,而不是$

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

除了在MooTools的有一个document.id()方法,可以用来代替$

document.id('myelement');

如果你希望能够使用$你可以试试片段如下:

(function($) { 

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


})(jQuery); 

以相同的方式,您可以使用MooTools的$

0

是的,当然可以,在兼容模式下。但是你必须小心jQuery的补充,因为它可能会导致一些麻烦,因为它们没有在兼容模式下编程,并可能导致与其他库的补充冲突。 要解决这个问题,你只需要在补码

希望这有助于改变$ jQuery。

1

在Mootools中使用美元安全模式,您应该可以,因为jQuery不会扩展本地文件。

相关问题