那麼,使用jQuery,您可以使用$ .noConflict()函數從全局命名空間中刪除'$'和'jQuery'變量,以防止頁面的其他部分使用其他版本的jQuery或另一個聲明'$'變量的庫。
這裏有一個簡單的例子...
<script src="/path/to/jquery.min.js" type="text/javascript"></script>
<!-- load plugins you require here -->
<script type="text/javascript">
var myUniquelyNamedVar = {};
myUniquelyNamedVar.jQuery = $.noConflict(true); // de-aliases jQuery, but gives you a private reference (if you need it)
(function($) {
// use an anonymous function and pass in your private jQuery instance; inside this function you can use $ like normal...
})(myUniquelyNamedVar.jQuery);
</script>
我已經使用JSR-168 portlet的這一做法,並取得了巨大成功。它允許我在頁面上有幾個portlet,每個portlet可以使用不同版本的jQuery或不同的插件。
我很好奇人們對此有何評論。框架不可知的吧.. +1 – Perpetualcoder 2010-01-11 22:46:54
你可以看看ExtJs是如何做到的。看看src \ adapter,他們對yui,prototype,jquery或其本地lib有一些基本dom的東西有自己的抽象。 – 2010-01-11 22:55:26
謝謝羅蘭B.你的評論是最有用的。糟糕的是沒有關於它的文章,轉換本身也被用在圖書館中。 – jerone 2010-01-12 08:03:08