Jquery:启用输入焦点时如何触发单击事件

Jquery:启用输入焦点时如何触发单击事件,jquery,Jquery,我有一个输入字段。在聚焦事件中,我打开一个工具提示,在聚焦事件中,我关闭工具提示。但是现在我在工具提示上有了一个链接,我想做些什么来让这个链接可以点击。 但当我开始聚焦输入并转到工具提示链接并尝试单击时,输入的focusout事件将首先被调用,工具提示将关闭。所以我无法点击那个链接。 这是我的密码: html: jquery: $('.field-input').on('focusin', function(){ $('tooltip').show(); }); $('.field-input'

我有一个输入字段。在聚焦事件中,我打开一个工具提示,在聚焦事件中,我关闭工具提示。但是现在我在工具提示上有了一个链接,我想做些什么来让这个链接可以点击。 但当我开始聚焦输入并转到工具提示链接并尝试单击时,输入的focusout事件将首先被调用,工具提示将关闭。所以我无法点击那个链接。 这是我的密码:

html:

jquery:

$('.field-input').on('focusin', function(){
$('tooltip').show();
});
$('.field-input').on('focusout', function(){
    $('tooltip').hide();
});
$('.tooltip a').on('click', function(){
    ... do something
});

您可以在鼠标进入工具提示时删除focusout事件绑定,并在鼠标离开时将其添加回:

$('.tooltip').on({
  mouseenter: function(){
    $('.field-input').off('focusout');
  },
  mouseleave: function(){
    $('.field-input').on('focusout', function(){
      $('.tooltip').hide();
    });
  }
});

您可以在鼠标进入工具提示时删除focusout事件绑定,并在鼠标离开时将其添加回:

$('.tooltip').on({
  mouseenter: function(){
    $('.field-input').off('focusout');
  },
  mouseleave: function(){
    $('.field-input').on('focusout', function(){
      $('.tooltip').hide();
    });
  }
});
您可以使用捕获接收焦点的元素,并且仅当单击的元素不是工具提示锚定时才隐藏工具提示

从文档中:

MouseEvent.relatedTarget只读属性是次要属性 事件的目标(如果有)。即:

焦点输出:接收焦点的事件目标

诸如此类:

$('.field-input').on('focusout', function(e){
    var tooltipHolder = $('.tooltip');
    var tooltipAnchor = tooltipHolder.find('a');
    if (e.relatedTarget !== tooltipAnchor[0]) tooltipHolder.hide();
});
您可以使用捕获接收焦点的元素,并且仅当单击的元素不是工具提示锚定时才隐藏工具提示

从文档中:

MouseEvent.relatedTarget只读属性是次要属性 事件的目标(如果有)。即:

焦点输出:接收焦点的事件目标

诸如此类:

$('.field-input').on('focusout', function(e){
    var tooltipHolder = $('.tooltip');
    var tooltipAnchor = tooltipHolder.find('a');
    if (e.relatedTarget !== tooltipAnchor[0]) tooltipHolder.hide();
});

谢谢塞尔吉奥,我从来没有想过它会很简单。谢谢塞尔吉奥,我从来没有想过它会很简单。