我有下面的HTML代码:
<select>
<option selected>Test 1</option>
<option>Test 2</option>
<option>Test 3</option>
</select>
如何检查<select>
的<option>
是否显示?例如,这被认为是<select>
的<option>
是否显示:
并且这被认为是<select>
的<option>
没有被显示:
我试过这个:
x一个一个一个一个x一个一个二个x
但是控制台日志一直在"显示"。
那么,我如何才能做到这一点?
- 编辑1:**
How to check if an select element is still “open” / active with jquery处的答案不起作用,因为当我单击select
元素以显示选项,然后再次单击它时,即使select
仍处于焦点状态,选项也不会显示。
- 编辑2:**
以防我说得不够清楚,基本上我希望控制台记录用户单击select
或option
时的"显示"或"未显示
9条答案
按热度按时间z31licg01#
你可以试着听一下点击,模糊和按键事件。我只是在每个事件上切换一个
open
变量到true or false
。wljmcqd82#
not displayed
时可以使用change
事件,displayed
时可以使用focus
事件u5i3ibmn3#
我建议您使用新的jquery selectmenu,它提供了selectmenu打开事件
参考:www.example.comhttp://api.jqueryui.com/selectmenu/#event-open
ejk8hzay4#
读完之后,我意识到Option标记并不是"常见的" DOM元素。那么,控制它就不那么容易了(相反,您正在检查Click、Blur和组合其他方法,就像我们之前开始尝试的那样)。
现在,我已经设法你终于找到了解决方案的混合第一个想法,我们有,然后,我会解释其他可能的解决方案,你有和所有的事情,我已经学会了选择:
然后,在回顾了所有这些东西之后,我认为不像之前回答的那样做大量的点击/模糊控件就不可能用纯HTML的方式制作它。
无论如何,澄清一下,有很多jquery librarys可以帮助您模拟选择/选项下拉菜单,并控制它是否打开。
我希望这个答案能解决你的问题。检查一下我为你准备的这个函数,它可以显示jquery的下拉方式:
这些是我读过的理解它的文档:
w9apscun5#
如果你想要一个更简单的尝试,下面的方法可能值得一试。简单地说:专注于元素。
lokaqttq6#
我用这个密码
cnt =文档.getElementById('your_select').子元素计数;
if(cnt == 0){your_select元素中没有选项元素。
xnifntxz7#
ES6的一个实际例子是在
select
打开时添加一个类,在关闭时删除它。请注意,在早期版本的Chrome中,当你按spacebar
和enter
时,这些选项也会出现。但enter
在其他浏览器中的行为与Chrome大不相同。您可以添加更多函数,将其简化为可读性更强的代码,并分别处理每个函数。
如果我得到+10票,我会发布一个内联浮动标签的完整实现,像这样:
q0qdq0h28#
解决方案:
select
是一个输入,它有一个焦点状态,所以当它有焦点时,列表(选项)将显示,当它没有焦点时,选项列表将消失。希望能有所帮助。
lhcgjxsq9#
当jquery是1.6+时,简单检查怎么样
或
它可以做到这一点。