不知道该怎么做,但基本上我写了一个工具提示插件,它删除了mouseout
或上的工具提示mousedown
。
如果mousedown
触发了一个事件,它将删除$that.parent()
哪个很好,这会删除工具提示,但是如果用户还触发了 mouseout 事件(他们将触发事件,因为mouseover
andmouseout
事件当前被链接),它将删除另一个 DOM 元素我不想要。所以基本上我想知道这是否可能:
$that.on('mouseover', function() {
// If this event is triggered within the mouseover event, don't run the chained mouseout event
$that.on('mousedown', function() {
$that.parent().next().fadeOut(100).remove();
return false;
});
}).mouseout(function() {
// If they clicked above, don't run this
$that.parent().next().fadeOut(100).remove();
});
据我所知,如果不使用全局变量,就很难访问clicked
该事件内部的布尔集,mousedown
例如:
$that.on('mouseover', function() {
clicked = false;
// If this event is triggered within the mouseover event, don't run the chained mouseout event
$that.on('mousedown', function() {
clicked = true;
$that.parent().next().fadeOut(100).remove();
return false;
});
}).mouseout(function() {
// If they clicked above, don't run this
if (clicked) {
$that.parent().next().fadeOut(100).remove();
}
});
关于如何优雅地构建它的任何想法?
编辑:中的元素$that.parent().next()
只是<div class="js-tooltip"><span>Tooltip text</span></div>
但这应该无关紧要,因为我只想知道如果在不使用全局变量的情况下触发了该mouseover
函数是否可以从该函数返回。mousedown