jQuery和Mootools可以一起工作吗?
如果不是那样的话?
答案 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
希望这会有所帮助。