如何在Prototype JS库中更改'$'函数的名称?

时间:2013-05-15 19:33:40

标签: jquery prototype

我在我的应用程序中使用了jQuery和Prototype库(由于第三方插件而被强制使用)。

两个库都使用'$'作为核心功能。 我知道如何将jQuery上的$更改为其他内容以避免冲突。 但是我更喜欢更改Prototype $函数,因为我的大多数代码都使用jQuery。

有办法做到这一点吗?

2 个答案:

答案 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;