阻止typeahead.js下拉列表在选择时关闭
Prevent typeahead.js dropdown from closing on select
选择项目时,如何防止typeahead下拉列表关闭?我试过这样使用preventDefault
:
$('#q').bind('typeahead:selected',function(obj, datum, name) {
...
obj.preventDefault();
});
但没有成功。
编辑:我已经设法";"修复";这是通过构建Typeahead_views.js:中注释的217-218行的Typeahead实现的
byClick && utils.isMsie() ?
utils.defer(this.dropdownView.close) : this.dropdownView.close();
但是在不修改源文件的情况下,必须有另一种方法吗?
遇到了同样的问题,(非常简单的)解决方案似乎没有在的任何地方记录下来
$(document).on('typeahead:beforeclose', function(event, data) {
event.preventDefault()
})
(这只会阻止下拉列表关闭,这在开发过程中非常有用,如果您想阻止仅在selet上关闭,请使用'typeahead:beforeselect'
)。
触发关闭回调上的输入焦点。
$('#typeahead-input').on('typeahead:closed', function(e, d) {
$('#typeahead-input').focus();
});
我正在tokenfield内部进行typeahead,所以第一部分是访问typeahead.dropdown对象,这本身就需要一些搜索。
试着摆弄isOpen
或重写close
函数,最后我得到的最接近的是这个。分解事件的编排。您必须重新实现对值等的任何保存,基本上是Typeahead.select
的前3行。
我自己也被阻止了,无法在下拉列表中放置一个表单(焦点停留在输入字段中),如果要在其中放置一些交互式内容,我还需要更多的搜索。我想我会在这个问题上使用你自己的解决方案,但可能会帮助那些只想阻止关闭的人,将原始函数放在var中,以便在完成后将其放回原位。
$('input[id="test"]').data('bs.tokenfield')
.$input.data('ttTypeahead').dropdown.trigger = function(e) {};
这也有潜力:
$('input[id="test"]').data('bs.tokenfield')
.$input.data('ttTypeahead').eventBus.trigger = function(e) {};
一种更简单的方法:
input.data('tt-typeahead')._selectOld = input.data('tt-typeahead')._select
input.data('tt-typeahead')._select = function(datum) {
if (false)
this._selectOld(datum)
}
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 如何使用jQuery选择下拉列表的值
- jquery点击函数select&取消选择
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 按照选项卡索引的顺序循环一个jQuery选择
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 获取选择框的状态
- 如何让Typeahead.js使用对象的一个字段而不是全部字段自动完成或选择
- 阻止typeahead.js下拉列表在选择时关闭
- typeahead选择事件(jQuery)的动态绑定
- 有没有办法在打开下拉列表之前过滤typeahead.js的选择
- Bootstrap Typeahead-don't自动选择第一项
- Typeahead选择支持树状结构的列表
- 无法在选择使用Angular UI引导程序时获取typeahead
- bootstrap3-typeahead用TAB选择第一个元素
- Angular-UI Typeahead.如何禁用一些行,不允许对这些字段进行选择
- ExtJS 4.2 - Tab 在组合框中选择错误的值,键入快速键入时为 typeAhead:true