我正在寻找一种方法来确定/何时<select>
元素的菜单已打开。我不需要强迫它打开或关闭,只需确定它在给定时间是打开还是关闭。有没有办法确定<select>下拉菜单是否打开?
我可以听聚焦/模糊,mouseup/mousedown等事件,但我不认为我能从这些事件中可靠地找出菜单的状态。例如,mousedown后跟mouseup可能意味着用户单击并拖动到选区并释放(在这种情况下,菜单现在已关闭),或者单击并释放以打开菜单(在这种情况下菜单已打开)。下拉菜单的具体行为似乎也可能与浏览器有关。
我知道我可以做到这一点,如果我滚动我自己的下拉菜单,但我更喜欢使用<select>
。
是否有可靠的方法来确定下拉菜单是否打开?或者这是Javascript无法知道的东西?
结论:通过询问对象或通过侦听它触发的事件,似乎没有任何确定的方式来确定选择菜单是否打开。
对于我自己的用途,我只是跟踪是否选择使用 onfocus和 onblur。我假设菜单如果没有关注就没有办法开放,这似乎在我测试过的所有浏览器中都成立。它实际上并没有告诉我菜单何时打开,但它告诉我何时不能打开,这对我的目的来说足够好。
仅供参考 - IE的后续版本打开哪个不火的平常事件的自定义选择列表菜单。基本上,当你打开一个选择列表,你的鼠标现在悬停在与DOM无关的事情上 – JDandChips 2014-08-14 09:30:10