在我的JQuery项目中,我对相当多的文本字段使用了Backbone.js UI自动完成。以正确的顺序加载库,如下所示,
define(['jquery','jquery-ui.min','jquery.ui.touch-punch']);
调用自动完成函数,如下所示:
$("#channelRspm").autocomplete({
minLength: 3,
delay: 1000,
source: function(request, response) {
var results = $.ui.autocomplete.filter(channel, request.term);
response(results.slice(0, 10));
}
});
问题是,自完成行为是非常随机的。在Chrome浏览器上运行源代码时,有时运行得完美无缺。但是,有时在控制台中会出现错误:
Uncaught TypeError: $(...).autocomplete is not a function
刷新html通常会使它再次工作,但这不是我想要的。有人能告诉我我要去哪里吗?
发布于 2015-11-03 05:02:04
您应该确保jquery是在jquery之后使用shim
加载的。
require.config({
paths: {
"jquery": "lib/jquery",
"jquery-ui": "lib/jquery-ui",
"underscore": "lib/underscore",
"backbone": "lib/backbone"
},
shim: {
"underscore": {
exports: "_"
},
"backbone": {
exports: "Backbone",
deps: ["underscore", "jquery"]
},
"jquery-ui": {
exports: "$",
deps: ['jquery']
}
}
});
您需要以类似的方式将jquery-ui
指定为jquery.ui.touch-punch
的依赖项。
然后定义模块,如下所示
define(['jquery','jquery-ui','jquery.ui.touch-punch']);
https://stackoverflow.com/questions/33478735
复制相似问题