这是我使用的 main.js 文件...
require.config({
baseUrl: "/js/",
paths: {
jquery: 'libs/jquery/jquery-1.7.1',
'jquery.mobile-config': 'libs/jqm/jquery.mobile-config',
'jquery.mobile': 'libs/jqm/jquery.mobile-1.1.0',
'jquery.mobile.asyncfilter': 'libs/jqm/asyncfilter',
underscore: 'libs/underscore/underscore-1.3.3',
backbone: 'libs/backbone/backbone-0.9.2',
templates: '../templates'
},
shim: {
'underscore': {
exports: "_"
},
'backbone': {
deps: ['jquery','underscore'],
exports: 'Backbone'
},
'jquery.mobile-config': ['jquery'],
'jquery.mobile': ['jquery','jquery.mobile-config'],
'jquery.mobile.asyncfilter': ['jquery.mobile'],
}
});
require([
'jquery',
'app',
'jquery.mobile','jquery.mobile.asyncfilter'
], function( $, App ){
$(function(){
App.initialize();
});
});
最后一点非常重要,以使JQM正确加载(并实际运行)。 这部分内容:
require([
'jquery',
'app',
'jquery.mobile','jquery.mobile.asyncfilter'
], function( $, App ){
$(function(){
App.initialize();
});
});
由于我需要使用jqm(jquery mobile), 我将加载它们所有,并且由于以上的shim代码,依赖项会按照正确的顺序加载。实际上,在函数调用中,我并没有传递任何jqm变量,只传递了$和App。下一个重要部分是jqm-config文件:
define(['jquery'], function ($) {
$(document).on("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
});
});
您可以将所有的jqm预初始化代码放在该文件中。完成所有这些步骤后,您应该可以使用jqm!