typeahead.js 获取选中的数据项

16

我正在尝试使用 Twitter 的typeahead.js,在选择后返回数据。根据文档理解,代码应该类似于:

$('.selector').typeahead({
  name: 'identifier',
  local: localObjectsArray
}).on('autocompleted', function(item){
    alert(JSON.stringify(item));
});

然而这并不起作用。有什么正确的方法来检测 typeahead 事件吗?

1个回答

45

选择后,所需事件是typeahead:selected

$('.selector').typeahead({
    name: 'identifier',
    local: localObjectsArray
}).on('typeahead:selected', function (obj, datum) {
    console.log(obj);
    console.log(datum);
});

希望能对你有所帮助。


3
这是一个好的提示,但可能需要进行编辑以使用.on()替代.bind()。请参考https://dev59.com/X2sz5IYBdhLWcg3wNE1q。 - dualmon
我认为在这种情况下使用.on()有些过头了,当.bind()被弃用时,我会更新答案。 - Hieu Nguyen
4
好的,但是为了记录,“从jQuery 1.7开始,.on()方法是附加事件处理程序的首选方法”,摘自http://api.jquery.com/bind/。 - dualmon
1
我的代码中从来没有“selected”这个属性,所以我无法使用这种方法...我已经到处寻找解决办法,但是一直找不到。似乎typeahead.js的使用非常少。如果您能帮我解决这个问题,请告诉我,@Hieu。http://stackoverflow.com/questions/24813018/twitter-typeahead-js-with-scrollto-not-working - user2847749
4
请注意,自定义typeahead事件现在是typeahead:select而不是typeahead:selected。我不确定这个更改是什么时候发生的,但在v0.11.1中,typeahead.selected未定义。文档已经反映了这一点:https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#custom-events - StickByAtlas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接