我正在寻找一种方法来确定<select>元素的菜单是否/何时打开.我不需要强制它打开或关闭,只需弄清楚它是否在给定时间打开或关闭.
我可以收听焦点/模糊,鼠标/模拟等事件,但我认为我不能可靠地从这些事件中找出菜单的状态.例如,鼠标按下之后鼠标松开可能意味着用户点击并拖动到一个选择和释放(在这种情况下,菜单现在是封闭的),或者点击并释放到打开菜单(在这种情况下,菜单是打开的).下拉菜单的特定行为似乎也与浏览器有关.
如果我滚动自己的下拉菜单,我知道我可以这样做,但我更喜欢使用<select>.
有没有可靠的方法来确定下拉菜单是否打开?或者这是Javascript无法知道的东西?
结论:似乎没有任何保证的方法来确定选择菜单是否打开,无论是通过询问对象还是通过侦听它触发的事件.
对于我自己的使用,我只是跟踪选择是否具有使用onfocus和onblur的焦点.我假设菜单无法在没有焦点的情况下打开,这似乎在我测试的所有浏览器中都适用.它实际上并没有告诉我菜单何时打开,但它告诉我何时无法打开,这对我的目的来说已经足够了.