当鼠标悬停在其他元素上时,如何删除和重新设置输入焦点

How to remove and re-set focus on input when hovering over other element

本文关键字:删除 新设置 焦点 输入 设置 何删除 其他 悬停 鼠标 元素      更新时间:2023-09-26

我使用Bootstrap 3,并有一个标准输入字段,如下所示,我在页面加载上通过jQuery设置焦点:

我的输入:<input type="text" class="form-control" id="searchTerm" />

我的jQuery:$('#searchTerm').focus();

在同一页面上,我有一个Bootstrap导航栏,当在导航栏上导航时,我想删除上面的焦点+离开导航栏时重新设置焦点。原因是,否则闪烁的光标会重叠我的导航栏下拉菜单,因此它在下拉菜单背景中可见。

我的导航栏:

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header margin-right-30">
          // ...

我想你可以在类"navbar"上使用焦点/模糊事件来做到这一点,但我不确定是否以及如何实现这一点。我怎样才能正确地做到这一点?

您可能想要使用jQuery的.hover().focus()方法(链接中的文档)。请注意,.hover()方法采用回调参数,该参数是事件发生时将调用的函数。然而,.focus方法虽然可以采用回调方法,但可以在没有参数的情况下调用,只需将焦点更改为点左侧的元素即可。

例如,您可能想做以下操作:

$('#navBar').hover(function(){
  this.focus();
});