Aus*_*ust 7 html javascript jquery html5 drop-down-menu
你可以使用一个巧妙的技巧来"关闭"一个<select>
下拉菜单.
$('#test').click(function(){
$('#test').hide();
setTimeout(function(){
$('#test').show();
},20);
});?
Run Code Online (Sandbox Code Playgroud)
这似乎总是适用于Windows上的Chrome和Firefox.IE在我的实际代码中工作,但是当我在IE中测试jsfiddle代码时,它不起作用.在Mac上,这对任何浏览器都不起作用.Mac和Windows之间的区别在于,在Mac上,选项在它们自己的元素中打开(有点 - 检查页面显示没有新元素).因此下拉栏会隐藏并返回,但带有选项的新菜单不会被视为其中的一部分,$('#test')
因此它们不会隐藏.在Windows中,带有选项的菜单被认为是其中一部分,$('#test')
因此当您隐藏它时,菜单会随之隐藏.
所以问题是,有没有办法"关闭" <select>
适用于任何浏览器和任何操作系统的下拉菜单?
我不是说使用.blur()
,这就是原因.我有一些模拟下拉菜单的代码但实际上是<select multiple>
.所以我只有一个正常的<select>
可见,当我点击它时,我用一个绝对定位的<select multiple>
元素替换它.选择选项后,这会消失,<select>
元素会回来.对此的任何帮助都会很棒.
如果您将事件从 更改click
为focus
,可能会有所帮助:
$("#test").focus(function () {
// Your original code
// or: this.blur();
// just DON'T call this.focus()
});
Run Code Online (Sandbox Code Playgroud)