我正在尝试让typeahead.js在我的项目中工作。我在我的项目中加载了bootstrap(刚刚从bootstrap站点下载了源代码)。查看源代码显示没有提到typeahead,所以我包含了独立的js文件。
当我尝试使用它时,我没有收到任何错误,但它只是不起作用。简单的代码:
<input type="text" class="typeahead" />
var source = ["test1", "test2", "test3", "test4"];
$('.typeahead').typeahead({
source: source })
jsfiddle:link
我做错了什么? (注意我的js位于jsfiddle的底部)
答案 0 :(得分:1)
typeahead.js
版本与您调用它的方式不同。最新版本的typeahead
需要可变数量的数据集参数。请参阅我的小提琴的更新版本:http://jsfiddle.net/DTcHh/458/
var source = ["test1", "test2", "test3", "test4"];
function mySource(query, callback){
srcs = [];
for(var idx in source){
var src = source[idx];
if(src.indexOf(query) !== -1){
srcs.push({value: src});
}
}
console.log(srcs);
callback(srcs);
}
$(document).ready(function(){
var t = $(".typeahead");
t.typeahead({}, {'source': mySource});
});
对于每个数据集,需要有一个指向函数的source
属性。该函数接受查询字符串和回调函数。期望您使用查询字符串执行所需操作,然后使用对象列表调用回调函数,其中每个对象具有映射到要显示的值的value
属性。
我认为您应该能够在选项中指定{'local': source}
,但我还没有让它发挥作用。
无论如何,如果你想要旧的API,你必须使用Bootstrap 2的typeahead版本。