1

我想要在打开时模糊选择菜单。当您将鼠标悬停在标签上时,我做了一个小功能,然后会调用模糊功能。它在其他浏览器中运行良好,但在 chrome 中无法运行。小提琴

重现错误:单击并打开选择菜单和悬停锚标记,打开选择菜单应该关闭

<head>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
   $('a').hover(function(){
    $('select').blur();
   })
})
</script>
</head>
<body>
<select>
<option>Test</option>
<option>Test</option>
<option>Test</option>
<option>Test</option>
<option>Test</option>
<option>Test</option>
<option>Test</option>
</select>
<a href="#">hover me</a>
</body>
</html>
4

2 回答 2

3

我有同样的问题,想法很明确:你不能模糊打开的选择元素,因为 Chrome 和 Safari 等待答案。但是有一个您可能会接受的解决方法。

首先,当“选择”仍处于活动状态时,您无法将焦点设置到另一个元素,因此我通过应用“显示:无”将其删除。之后,我在另一个无害元素上触发点击事件。然后我通过设置显示:块重新添加选择。在这种情况下,代码将如下所示(我将添加一个跨度以单击):

.......
<select>
<option>Test</option>
......
</select>
<a href="#">hover me</a>
<span class="clickable">element clicked</span>
.......
<script type="text/javascript">
$(document).ready(function (){
    jQuery("a").mouseenter(function (){
        $("select").css({'display':'none'});
        $("span.clickable").focus().click();
        $("select").css({'display':'block'});
    });    
});
</script>
于 2013-05-24T14:57:46.340 回答
0

您需要为此使用 .trigger ()

<select id="selectboxId">
.......
</select>

   $ ('#selectboxId').trigger('blur');
于 2013-05-22T11:33:41.950 回答