立即不会返回如果鼠标按下鼠标悬停在事件中触发执行链式mouseout事件

不知道如何去了解这一点,但基本上我写了一个工具提示插件,它消除了对鼠标移开或者鼠标按下或工具提示。

如果mousedown事件被触发时,它会删除$that.parent()这是好的,这消除了提示,但如果用户也触发mouseout事件(他们会因为鼠标悬停和鼠标移开事件,目前链接),它会再删除,我不想要另一个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>

但是,这应该是不相关的,因为我想才知道是否有可能从该鼠标悬停函数返回如果鼠标按下从未使用全局变量触发。

--------------解决方案-------------

你有没有简单地认为使用类过滤器也是这样吗?

$that.parent().next('.js-tooltip').fadeOut(100).remove();

这样就无法做任何事情,如果下次不是一个提示,这应据我了解解决问题。

使用您提出的方法,这将是推行清洁做$that.clicked = false

或者怎么样(如果你想保持鼠标悬停在所有 - 这只是为了演示的原则;我不知道它是否会工作像这样):

$that.on('mouseover', function() {

// If this event is triggered within the mouseover event, don't run the chained mouseout event
$that.on('mousedown mouseout', function() {
$that.parent().next().fadeOut(100).remove();
$that.off('mousedown mouseout'); //prevent that happening again
return false;
});
});

你并不需要的mouseover

$that.on('mouseleave mouseup', function(e) {
if( e.type === 'mouseleave'){
// do the mouseleave stuff
}else{
// do the mouseup stuff
}
});​



正如你所说,如果动态创建的元素,你应该使用:

$(document).on('mouseleave mouseup', $that, function(e) {

分类:JavaScript的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.247 (s). 10 q(s)