繁体   English   中英

首次单击时,检测选择元素onBlur的单击关闭。 (默认为第二次点击)

[英]Detect click off of select element onBlur on first click. (default is second click)

我已经阅读了有关检测选择菜单状态的问题,无论它是可见的打开的还是关闭的 ,快速回答是它不是通用的,取决于您要执行的操作。 这些答案均无法100%覆盖我的情况。

我需要确定何时关闭选择菜单,当前该菜单通过存储变量onblur 但是,select元素不会将注意力集中在第一次单击上,而是将其放在第二次单击上。 我可以检测到第一次点击发生了什么事件吗? 还是使选择失去对第一次单击而不是第二次单击的关注? 寻找纯JavaScript答案,没有jQuery。

以下是一些演示此示例代码: http : //jsfiddle.net/BhnH9/1/

最近,对此线程发表了评论,因此我决定再次研究该问题。 我不记得最初的情况如何,但是我知道我需要选择下拉菜单以在选择一个项目后失去重点。 所以,瞧瞧,我的jQuery解决方案...以我的话说它一定不是jQuery :)很久了,我换了工作,不知道为什么要这么做。

$('select').bind('change', function(e) {
  $(this).trigger('blur');
});

$('select').bind('blur', function(e) {
  alert('select lost focus');
});

这是一个JSFiddle: http : //jsfiddle.net/7tUse/

您可以在文档(或select的其他合适祖先)上使用常规Click侦听器,并查看select元素是否与document.activeElement相匹配。 如果是这样,那么它就可以集中精力,因为它刚得到它或者已经选择了一个选项。

但是,除了单击之外,还有其他选择选项的方法,例如键盘导航。 点击监听器将无济于事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM