jQuery與其他javascript framework共用時…
前言
最近都在用jQuery作網頁上的一些效果,舉凡suggestion box,autocomplete,floating box,cloud tag等等,
都有許多不錯的外掛,而且使用簡單,
要自己寫也是很方便,尤其是自從visual studio2008提供javascript intellisense後.
不過前兩天遇到一個狀況,
因為現在的系統不只我在開發,
我算是接手其他人的專案,
所以在部署的時候才發現當使用者在某種狀態下會載入一份問卷,
而只要一載入那份問卷,我寫的jQuery功能就會掛掉.
查看一下才知道原來他裡面包了一個MooTools,
所以會跟jQuery使用的”$”起衝突.
不過這問題jQuery應該是老早就有想到了.
解決的方法在下面.
解決方法
在jQuery中有個noConflict的函數,
如果要與其他的javascript framework共存的話,
要在執行jQuery的功能前先呼叫這個函數.
jQuery.noConflict();
因為jQuery的呼叫方式可以使用$符號跟jQuery,
而這兩種方式以jQuery的改法比較簡單,(只是一般我們都習慣用$符號)
只要開頭加個jQuery.noConflict();就可以.
範例如下
jQuery.noConflict();
jQuery(“#divBox”).hide();
如果是用$符號的話,
就要再用個function包起來.
範例如下
jQuery.noConflict();
(function($){
$(“#divBox”).hide();
})(jQuery);