jQuery选择插件:捕获焦点以在Tab时打开
jQuery Chosen Plugin : Capturing focus to open when tabbing
我们目前正在使用选择的下拉插件,除了一个小问题,它非常棒。 当我们使用单个下拉列表时,如果按 Tab 键进入"选择"控件,则不会显示实际的下拉列表部分。 但是,当将插件应用于多个"选择"时,它确实会出现。
在浏览了文档和 GitHub 问题之后,似乎有很多关于选项卡排序和聚焦的提及,但似乎没有涉及这个相当简单的要求;在 Tab 键接收焦点时显示下拉列表。
因此,假设此功能不是插件的一部分,是否有替代方法,例如捕获锚标签的焦点?
$('.chzn-single').focus(function(e){
alert('I should be focused!')
});
到目前为止,我还没有成功,想知道是否有其他人遇到过这个问题。 你可以看看这个演示问题的jsfiddle
-
您应该跟踪所选 conainer 内部搜索输入的焦点事件,而不是锚元素,然后触发所选容器的 mousedown 事件 - 这是它在打开下拉列表时侦听的事件
-
您需要使用委托事件方法将事件处理程序绑定到动态添加的元素(对于 jquery 1.7.1 及更早版本,您可能只使用"live"方法)
-
您还需要检查容器当前是否处于活动状态,以避免递归调用(当打开所选下拉列表时 - 搜索输入将再次聚焦)
$('body').on('focus', '.chzn-container-single input', function() { if (!$(this).closest('.chzn-container').hasClass('chzn-container-active')) $(this).closest('.chzn-container').trigger('mousedown'); 或改用这个 $('#select').trigger('liszt:open'); });
这是工作 jsfiddle
而不是$(this).closest('.chzn-container').trigger('mousedown');
您还可以触发插件的内部事件:$('#select').trigger('liszt:open');
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 单击时将焦点更改为元素
- 如何在使用jQuery按下TAB键后返回焦点
- Ace 编辑器将字段焦点放在 Tab 键上
- 带键盘的 j轮播 :使用 Tab 键的错误焦点
- 使用纯JS或jQuery通过Alt Tab检测浏览器页面窗口何时失去焦点
- 使用tab键更改焦点颜色的按钮,并在按enter键时返回原始颜色
- 是否有一种方法可以通过编程触发TAB键将焦点移动到下一个可聚焦的元素
- Jquery-ui自动完成防止TAB键焦点
- 即使在javascript中设置了焦点之后,Tab事件也会改变焦点
- TAB焦点没有正确显示
- 为什么不模拟tab键将焦点移到下一个输入字段?
- 如何在输入上创建两个按钮,如Tab(下一个焦点)按键和Shift+Tab(上一个焦点)
- 为什么不';preventDefault()在按下tab键后停止焦点变化?
- 如何取消选择文本框的文本,当它得到焦点时,当tab被按下
- 使用tab按钮避免焦点超出特定按钮
- 通过jquery在Tab键上按下焦点到图像按钮不起作用
- jQuery选择插件:捕获焦点以在Tab时打开
- 在asp.net中输入Key作为Tab并将焦点移动到下一个控件
- 为什么tab键会引起焦点变化,也会触发keyup事件