jQuery检测下拉列表是否展开

jQuery detect if dropdown is expanded

本文关键字:是否 下拉列表 检测 jQuery      更新时间:2023-09-26

我开发了jQuery模式窗口,遇到了一个问题。当用户按下退出键时,我的系统会找到最上面的窗口并关闭它们。但有一个问题,例如,如果下拉列表是打开的,我想先关闭下拉列表,如果用户再次按下escape,然后关闭模态(我不想删除焦点)。输入autocomplete是完全相同的问题。有没有办法找到按下的转义键是否有"浏览器"功能?

谢谢你的帮助,也很抱歉我英语不好,Petr

您不能使用常规select元素来执行此操作,因为没有可靠的方法来检测select的下拉列表是否打开。但是,如果像使用divs之类构建自定义select,则可以检测div是否可见,如果可见,则可以在beforeClose方法中阻止模态关闭。

以下方法假设下拉列表包含在div#select_elems

beforeClose : function(e,u){
    if (e.which == 27 && $("#select_elems").is(':visible')) 
        return false;
}

FIDDLE