JQuery悬停方法?

时间:2009-09-06 12:12:45

标签: jquery

我的页面上有一个图像,当用户用鼠标悬停它时,会显示一个工具提示(使用qtip插件)。唯一的问题是当图像加载时,如果光标已经悬停在图像上,则不会触发onmouseover事件,并且除非用户将光标移离图像然后重新打开,否则工具提示不会显示。是他们应该使用的另一个事件还是更好的方式?

1 个答案:

答案 0 :(得分:8)

我想建议检查用户是否在图像的onload事件上的图像上,但似乎没有办法检查鼠标在图像上的状态(至少在jQuery中)。因此,您可能希望尝试将jQuery's live eventmouseovermouseout一起使用。我怀疑这会避开这个问题,但值得一试:

jQuery(function(){
    $('img.has_tooltip').live('mouseover', function(){
        $(this).showTooltip(); });
    $('img.has_tooltip').live('mouseout', function(){
        $(this).hideTooltip(); });
});

如果这不起作用,您可以使用mousemove事件:

jQuery(function(){
    $('img.has_tooltip').mousemove(function(){
        $(this).showTooltip(); });
    $('img.has_tooltip').live('mouseout', function(){
        $(this).hideTooltip(); });
});

一旦用户移动鼠标而不是用户必须将鼠标强行移离图像,这应该可以正常工作。不理想,但除了暂停用户之外,它将适用于所有人。

当然,使用这两个示例,使用qtip插件中的正确方法切换xxxTooltip方法。