我在我的应用程序中使用了jQuery和Prototype库(由于第三方插件而被强制使用)。
两个库都使用'$'作为核心功能。 我知道如何将jQuery上的$更改为其他内容以避免冲突。 但是我更喜欢更改Prototype $函数,因为我的大多数代码都使用jQuery。
有办法做到这一点吗?
答案 0 :(得分:3)
在两个库加载后,有没有人试过这样的东西?
<script>
// using Prototype.js
Event.observe(window, 'load', function () {
window._ = window.$; // assign $ to _
window.$ = jQuery; // re-assign $ to jQuery
});
// or using jQuery
/*
jQuery(document).ready(function () {
window._ = window.$; // assign $ to _
window.$ = jQuery; // re-assign $ to jQuery
});
*/
</script>
这应该将Prototype.js放在_
上,将jQuery放在$
上。
如果失败了,这个IIFE模式应该允许你使用$ for jQuery(和Prototype):
<script>
// do Prototype.js stuff using $
(function ($) {
$('#myElem').addClassName('hidden').insert('Prototype added class "hidden" so now you cannot see me!);
}(window.$));
// do jQuery things using $
(function ($) {
$('#myElem').removeClass('hidden').append($('<p />').text('jQuery removed class "hidden" so now you can see me!));
}(jQuery.noConflict()));
</script>
答案 1 :(得分:0)
你必须在jQuery中使用非冲突。
然后将$更改为其他内容。然后你可以将$更改为jQuery。
$p = $;
$ = jQuery;