【问题标题】:jQuery detect if dropdown is expandedjQuery检测下拉菜单是否展开
【发布时间】:2014-04-26 07:22:28
【问题描述】:
我开发了jQuery 模态窗口,但我遇到了问题。当用户按下退出键时,我的系统会找到最顶层的窗口并关闭它们。
但是,例如,如果下拉菜单打开,我想先关闭下拉菜单,如果用户再次按 Escape 然后关闭模式(我不想移除焦点),则会出现问题。
输入autocomplete 是完全相同的问题。是否有某种方法可以查找按下的转义键是否具有某些“浏览器”功能?
感谢您的帮助,对不起我的英语不好,
彼得
【问题讨论】:
标签:
javascript
jquery
escaping
keypress
【解决方案1】:
您不能使用常规的select 元素执行此操作,因为没有可靠的方法来检测 select 的下拉列表是否打开。但是,如果您使用 divs 等构建自定义选择,则可以检测 div 是否可见,如果可见,则可以防止模态在 beforeClose 方法中关闭。
以下方法假定下拉列表包含在 div#select_elems 中
beforeClose : function(e,u){
if (e.which == 27 && $("#select_elems").is(':visible'))
return false;
}
FIDDLE