【发布时间】:2014-10-30 09:55:45
【问题描述】:
我有一个加载 Select2 jQuery 插件的 RequireJS 设置。
我有一个问题,但这意味着在页面加载时,浏览器默认选择输入会显示几秒钟,然后换成高级 Select2 输入,大概是因为 RequireJS 正在异步加载我的脚本。
有没有一种方法可以避免这种情况,而不必在 HTML 中包含脚本?
这是我的 RequireJS 设置:
require.config({
baseUrl: '/assets/js',
paths: {
jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min',
async: 'libs/async',
modernizr: 'libs/modernizr-custom',
jqueryUI: 'libs/jquery-ui.min',
bootstrap: 'libs/bootstrap.min',
select2: 'libs/select2.min',
},
shim: {
'select2': {
deps: ['jquery'],
exports: 'Select2'
},
'bootstrap': {
deps: ['jquery'],
exports: 'Bootstrap'
},
'jqueryUI': {
deps: ['jquery'],
exports: 'jQueryUI'
},
}
});
requirejs(["app/polyfills"]);
requirejs(["app/filter"]);
requirejs(["app/select"]); // Select2 plugin trigger
requirejs(["app/datepicker"]);
requirejs(["app/popover"]);
requirejs(["app/dropdown"]);
requirejs(["app/tooltip"]);
requirejs(["app/layout"]);
requirejs(["app/menu"]);
requirejs(["app/toggles"]);
这是实际的脚本:
define(['select2'], function(Select2) {
var app = {};
app.select = (function(){
var module = {};
module.init = function(){
$(".select-advanced").select2({
width: 'off',
dropdownAutoWidth: 'true',
});
};
return module;
})();
$(document).ready(function(){
app.select.init();
console.log('select');
});
});
【问题讨论】:
标签: javascript jquery requirejs jquery-select2