2013-10-25 60 views
1

我試圖使用jquery/bootstrap /和requirejs

加載js文件完美地工作,我檢查引導設置$ .fn.tab = someFunction;

但隨後,裏面requirejs的回調函數,調用$(富)的.tab(「秀」)會導致一個錯誤,指出選項卡不可用的對象。

Uncaught TypeError: Object [object Object] has no method 'tab'

一切加載罰款,我證實,他們通過打印日誌做。
但我猜$是重新定義或什麼的。
我應該從哪裏開始看?
grep '$\s*='

我的代碼相當長,我張貼根據不同的問題:jquery, bootstrap 3.0, and requirejs. can't use bootstrap's functions

我使用Django的,如果有什麼差別

+0

它真的是'$(foo)'?因爲通常它會更像'$('#foo')'。請注意,參數是一個字符串。此外,錯誤消息表明'tab'小部件未被正確加載,而不是'$'被覆蓋。 – Steve

+0

是的,好吧,它更像$('#foo')。我知道代碼的工作原理,因爲它在我嘗試使用requrejs之前工作 – eugene

回答

1

的問題很可能是引導未在您嘗試使用它的時間完成加載。試着改變你的引導墊片在requirejs配置到這一點:

shim: { 
    "bootstrap": { 
    deps: ["jquery"], 
    exports: "$.fn.tab" 
    } 
} 

RequireJS會等到$ .fn.tab被設置爲根據引導執行任何代碼。

+0

我檢查(通過日誌記錄)$ .fn.tab分配在使用$ .fn.tab的代碼之前.. – eugene

+0

嘗試記錄$ .fn.jquery(一旦在requirejs範圍之外,再次出現問題的地方),以確保它是您期望的版本。 – redmallard