我正在使用typeahead.js进行预先输入。
我基本上想要反过来这样做:Programmatically triggering typeahead.js result display
我尝试在typeahead上执行.trigger('blur');
,但我通过执行.typeahead('setQuery', value);
在此之前设置了值。执行'setQuery'会触发ajax请求,以使用新的查询字词获取结果。因此,“模糊”发生,但此后不久就会打开盒子。
答案 0 :(得分:15)
正确的方法,从版本0.11开始:
$('.typeahead').typeahead('close');
手动:https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#jquerytypeaheadclose
答案 1 :(得分:0)
如果将来遇到这种情况,现在最好的方法是:
$('.tt-dropdown-menu').css('display', 'none')
如果您打开Chrome开发者工具并观察键入和删除时发生的情况,这就是Typeahead正在做的事情,没有什么神奇之处。
此外,如果您尝试使用当前版本(10.5)来设置查询,您将收到如下错误:
Uncaught TypeError: Cannot assign to read only property 'highlight' of
答案 2 :(得分:0)
在我的特殊情况下,来自typeahead API(typeahead.js@0.11.1
)的专用close方法不起作用。可能是因为自定义CSS或我的代码中的某些错误。
在other answer中描述的通过将display属性设置为none来隐藏菜单的方法,我需要先将其设置为display:block
,然后再显示给以后使用。另外,它没有使用API。
对我来说,另一种更好的方法是清除输入的值,以便隐藏下拉菜单:
$('.typeahead').typeahead('val', '');
或
$('#place_typeahead_control').typeahead('val', '');
,以防页面上有多个搜索控件,并且要定位特定的搜索控件。
答案 3 :(得分:0)
参考:https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
a3
未公开,但可以设置前提条件,不允许下拉菜单打开:
$('.typeahead-input').typeahead('close');
答案 4 :(得分:-1)
您可以在“已打开”事件处理程序中触发“模糊”。如果下拉列表闪烁片刻,您可以使用CSS将其隐藏起来进行过渡。
答案 5 :(得分:-3)
不是调用setQuery,而是添加另一个不执行getSuggestions的函数,并且你会玩得很开心。