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