[英]jQuery Uncaught TypeError: $(…).autocomplete is not a function
[英]Uncaught TypeError: $(…).autocomplete is not a function
我在Backbone.js项目中的许多文本字段中使用了JQuery 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浏览器上运行源代码时,有时它可以完美运行。 但是,有时我在console中收到错误:
未捕获的TypeError:$(...)。autocomplete不是函数
刷新html通常可以使其再次工作,但是那不是我想要的。 有人可以建议我要去哪里吗?
您应该确保使用shim
在jquery之后加载了jquery-ui 。
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
依赖jquery.ui.touch-punch
。
然后像这样定义你的模块
define(['jquery','jquery-ui','jquery.ui.touch-punch']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.