gpt4 book ai didi

jquery mouseleave : don't trigger when entering a tip

转载 作者:行者123 更新时间:2023-12-01 03:17:14 25 4
gpt4 key购买 nike

各位开发人员大家好,

我在完善 UI 时遇到了一些麻烦。

我制作了一个弹出面板,当我将鼠标悬停在按钮/链接上时,该面板会打开。

无论我退出该按钮/链接还是退出面板本身,该面板都应该关闭。非常简单。

HERE (jsFiddle)我做了一个简单的演示,效果符合预期。

我的JS代码:

$('[data-tip]').tipsy({fade: true, gravity: 's'});

$('#btn').mouseenter(function(e){
$('#panel').show();
}).mouseleave(function(e){
var $panel = $('#panel')[0];
var $out_el = $(e.relatedTarget)[0];

if($out_el != $panel){
$('#panel').hide();
}
});

$('#panel').mouseleave(function(e){
var $btn = $('#btn')[0];
var $out_el = $(e.relatedTarget)[0];
var $tipsy = $('.tipsy')[0];

if($out_el != $btn && $out_el != $tipsy){
$('#panel').hide();
}
});

和 HTML 标记

<a href="#" id="btn">BUTTON</a>

<div id="panel">
<a href="#" title="1" data-tip="test 1">Test anchor 1</a>
<a href="#" title="2" data-tip="test 2">Test anchor 2</a>
</div>

问题就是提示。 (准确地说是jquery醉酒插件)。在我提供的示例中,我在弹出的面板中放置了 2 个链接。两者都附有醉意。因此,将鼠标悬停时会显示提示。一切顺利。

问题是,如果我触摸 Nib ,面板就会关闭。我不想那样。因此,我对 onmouseleave 事件添加了另一个检查...以检查“leave element”是否醉了...

但问题(我猜)是醉酒在我的事件之前就被破坏了,所以我无法检查“离开元素”是否醉酒。 (对于 $('.tipsy') 我变空了,当然 $('.tipsy')[0] 是未定义的。

请多多指教!

最佳答案

Working demo

你的 mouseleave 的状况使它隐藏起来。试试这个。

$('#panel').mouseleave(function(e){
if (e.target==this) $(this).hide();
});

关于jquery mouseleave : don't trigger when entering a tip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com