2011-08-11 103 views
2

我有一个问题。以下Tooltip工作很好,但有一个问题。当我将鼠标移到右侧时,光标会比工具提示更快,并将其悬停。这将隐藏并显示光标的分割秒。jquery tooltip mouseout mouseover

http://gabibyte.zxq.net/jquery_tooltips/example.html 
// !REMEMBER TO INCLUDE JQUERY IN YOUR PAGE - IF YOU DON'T KNOW HOW, JUST INCLUDE THE LINE OF CODE BELOW IN THE <HEAD>...</HEAD> PART OF YOUR PAGE 
/* <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script> */ 
//----------------------------------------------CONFIGURATION 
var offset=15; //Distance between tooltip and cursor 
var fadeInSpeed=600; //Speed of the Fade-IN effect in miliseconds 
var fadeOutSpeed=200; //Speed of the Fade-OUT effect in miliseconds 
var clearQueue = true; //If set to false, if you hover over many elements fast, the events will stack up 
var gotoEnd= true; //If set to false, if you hover over many elements fast, the events will stack up 
//---------------------------------------------GLOBAL VARIABLES 
var mouseX,mouseY; 
$(document).ready(function(){ 
//-----------------------------------------------MOUSE EVENTS 
    $(document).mousemove(function(e){ 
    mouseX=e.pageX+offset; 
    mouseY=e.pageY;+offset 
    $('.floating').css('top',mouseY); 
    $('.floating').css('left',mouseX); 
    }); 
//------------------------------------------------HOVER EVENTS 
$('.hastooltip').hover(function() { 
    var selector ="#"+ $(this).attr('tooltip'); 
    //alert(selector); 
    //$(selector).stop(clearQueue , gotoEnd) 
    $(selector).fadeIn(250,function() {}); 
},function() { 
    var selector ="#"+ $(this).attr('tooltip'); 
    $(selector).fadeOut(fadeOutSpeed,function() {}); 

    } 
); 
}); 

有什么办法可以对onmouseout说“如果悬停工具箱不做其他任何事情fadeOut”。

+0

你能解释一下你的问题有点多吗?我不明白你想要解决的问题。 – Charmander

回答

0
+0

我有鼠标移开 [代码] VAR选择= “#” + $(本).attr( '提示'); (选择器)。(fadeOutSpeed,function(){}); [/代码] – Daniel

+0

我有mouseout var selector =“#”+ $(this).attr('tooltip'); $(selector).fadeOut(fadeOutSpeed,function(){}); 我在寻找一种方法来阻止淡出,当工具提示悬停。 一样,如果(选择)。是(“悬停”)... ...还有淡出 – Daniel

+0

虽然这个链接可能回答这个问题,最好是在这里有答案的主要部件,并提供链接以供参考。如果链接页面更改,则仅链接答案可能会失效。 –

0

可以使用.setTimeout()您想在悬停关闭的情况发生的东西。然后为您的工具提示悬停,以取消超时(使用.clearTimeout())。您可能需要在元素上使用相同的setTimeout/clearTimeout,并且工具提示将鼠标悬停在/ ons(分别)上,以便如果有人将鼠标移回其中的任何一个,则悬停不会发生。

所以,如果你有一个2秒超时,当有人徘徊关闭定时器将启动,但只要有人从元素徘徊在2秒内的提示,它会被取消。

+0

这是一个好主意,我会尝试一下。有没有办法自动设置这个事件? $(选择).hover(函数(){$(本).clearTimeout}) – Daniel

+0

你可以把它存储在元素。 '$(this).data('timer',setTimeout(...));'然后:'clearTimeout($(this).data('timer'));'然后在你的工具提示中,能够找到该元素能够取消其超时。如果你的工具提示位于元素内,那么它很容易('clearTimeout($(this).parent()。data('timer'));')。 –