我有一些用作工具提示的元素。当鼠标悬停/单击具有相应控件类的元素时,这些会被jQuery淡入。任何淡入的元素应在5秒后再次淡出。确保jQuery fadeIn始终保持100%的可见性,定时器令人沮丧
这对于jQuery非常简单,但是如果我在一个控制器中鼠标悬停,然后在5秒钟内再次重启,则定时器不会重置,所以假设显示一条提示和一条消息之间存在2秒的间隔, 3秒后淡出。
所以,谷歌搜索,并使用该网站,导致该
function showTips(triggerElement, tipText) {
$('#tipText').html(tipText);
clearTimeout($('#tipNote').stop().data('timer')); // clears timeOut to fade tooltip away
$('#tipNote').fadeIn(function() { // fadeIn tooltip and sets a timeout function to hide it again
$.data(this, 'timer', setTimeout(function() { $('#tipNote').fadeOut(); }, '5000'));
});
};
有两个问题在这里
1)如果你把鼠标移到而第一提示第二控制器元件没有完全褪去(例如在此时具有50%的不透明度),下一个工具提示似乎仅淡入到第一个达到的最终不透明度(即50%),但由于某种原因,它将该不透明度存储在内存中。
2)我不完全理解代码,因为它来自这里的一个例子,我不确定数据是什么,或者最后一行中的$ .data调用。由于我不完全理解它,我不知道如何纠正淡入淡出问题。
====编辑===
在我的HTML添加
工具提示容器是单个的div其内容由控制器元件填入,即:
控制器元件:
<span id='marginAlertTotal' class='hoverTip' title='this is the tooltip content'></span>
这有一类hoverTip如此工作在悬停
我的实际toolip是:
<div class='tooltipContent borderRad5 tooltip-right tooltip' id='tipNote'>
<span class="tiptext" id="tipText"></span>
<div class='tooltip-pointer-down ui-widget-content'>
<div class='tooltip-pointer-down-inner'></div>
</div>
</div>
从上面(通过点击或悬停调用)#tipText的内容是由控制器的title属性填充我的JavaScript功能
然后。
啊,我想我可能没有明确地发布我在用HTML做什么。包含实际工具提示内容的div是相同的div,而不管哪个工具提示控制器被点击/悬停,内容由控制元素的“title”属性填充。我试图通过使用相同的容器来保留我的HTML,但用不同的内容填充它并使用jquery.offset进行定位。所有的工作,但褪色到错误的不透明度是烦人的! - 编辑原始帖子以显示HTML –