2014-04-21 77 views
1

我嘗試要求jQuery UI庫,但如果我嘗試使用它們未定義的函數。無法要求jqueryui

這裏是代碼

RequireJS 2.1.11

<script data-main="/js/lpapi/v3/qfapi.js" src="/vendor/requirejs/require.min.js"></script> 

qfapi.js

(function() { 
    require.config({ 
    paths: { 
     jquery: '/jquery/jquery-1.11.0.min', 
     jqueryui: '/vendor/jqueryui/jquery-ui-1.10.4.custom.min', 
     backbone: '/vendor/backbone/backbone-min', 
     underscore: '/vendor/underscore/underscore-min' 
    }, 
    shim: { 
     "jqueryui": { 
     deps: ['jquery'], 
     exports: '$' 
     }, 
     "underscore": { 
     exports: "_" 
     }, 
     "backbone": { 
     exports: 'Backbone', 
     deps: ['underscore', "jquery"] 
     } 
    } 
    }); 

    define(["jquery", "jqueryui", "backbone", "underscore"], function($, _, Backbone) { 
    console.log("jquery is loaded"); 
    console.log("jqueryui is loaded"); 
    console.log("underscore is loaded"); 
    console.log("backbone is loaded"); 
    $("#accordion").accordion(); 
    return true; 
    }); 

}).call(this); 

的 「手風琴」 不是一個函數。

有什麼想法嗎?

回答

0

您顯示的代碼存在一些問題。您的define呼叫應該是require呼叫。而你的參數列表是不正確的:

require(["jquery", "backbone", "underscore", "jqueryui"], function($, _, Backbone) { 

你有它在你的問題_會得到一個未定義的值,並Backbone將被綁定到underscore模塊的方式。

您的data-main不應包括.js擴展名。 data-main的值是模塊名稱。 RequireJS的模塊名稱通常不應包含擴展名。