开发者

flickering effect happening when trying to use show() and hide()

I am trying to create a tooltip function for a webpage I am building. I have a table of elements and one of the columns contains a short description. I am trying to create an effect where a user hovers over the short description and I display the full description from a hidden div tag.

The hover effect is working however if I move down to the next row outside of the orginal div tag, the jquery gets into a confused state and flickers and doesnt allow me t开发者_如何学Co mouse over to view the description of the row below.

If I mouse upwards it works fine.

My jquery function looks like

$('.alarms-desc').live('mouseover mouseout', function (event) {
var target = $(this).find(".tooltip");
if (event.type == "mouseout") {
    target.hide("fast");
}
if (event.type == "mouseover") {
    target.show("fast");
}

});

My css looks like

.tooltip {
display:none;
margin:0 10px 1em 0;
padding:8px;
background:#fcfcfc;
border:1px solid #e1e1e1;
line-height:130%;
background-color: #DCDCDC;
border: solid 1px #DCDCDC;
border-radius: 4px;
-moz-border-radius: 4px;
max-width: 500px;
position: absolute;
}

.alarms-desc
{
display: block;
}

Some of the html

<div id="AD_40ba5b52-8a8e-40cf-99e3-fbb9cbea8863" class="alarms-desc">

My short descrip 1
<div id="tool_40ba5b52-8a8e-40cf-99e3-fbb9cbea8863" class="tooltip">This is my long    description that extends a long way.............................</div>
</div>
<div id="AD_40ba5b52-8a8e-40cf-99e3-fbb9cbea8864" class="alarms-desc">

 My short descrip 2
 <div id="tool_40ba5b52-8a8e-40cf-99e3-fbb9cbea8864" class="tooltip">This is my long description that extends a long way.............................</div>
 </div>
 <div id="AD_40ba5b52-8a8e-40cf-99e3-fbb9cbea8865" class="alarms-desc">

  My short descrip 3
 <div id="tool_40ba5b52-8a8e-40cf-99e3-fbb9cbea8865" class="tooltip">This is my long description that extends a long way.............................</div>
 </div>

Any suggestions what I need to change?


There's a jQuery plugin called hoverIntent - http://cherne.net/brian/resources/jquery.hoverIntent.html that might help. Rather than firing the mouseenter and mouseleave events immediately, it waits for the mouse cursor to stay still for a bit (you can adjust the sensitivity and timeout), so if you hover on each item quickly, only the last item that's hovered on will show the tooltip.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜