JQuery hover方法?

4

我在页面上有一张图片,当用户用鼠标悬停在它上面时,会显示一个工具提示(使用qtip插件)。唯一的问题是,如果在图片加载时光标已经悬停在图片上,则不会触发onmouseover事件,除非用户将光标移出图片然后再移回来。是否应该使用另一个事件或更好的方法来解决这个问题?


作为建议,我建议您展示您所拥有的代码,以便我们可以看到代码中可能存在的故障点,并提出改进意见。此外,了解哪些方面“不起作用”可以避免建议您已经拥有或尝试过的内容。 - David Thomas
1个回答

8
我建议在图片的onload事件中检查用户是否悬停在图片上,但似乎没有办法检查鼠标是否悬停在图片上(至少在jQuery中是如此)。因此,你可以尝试使用jQuery的live事件与mouseover和mouseout。我怀疑这是否能够避开问题,但值得一试。
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(); });
});

只要用户移动鼠标,而不是完全将鼠标移开图像,这个应该就可以工作了。虽然不理想,但除了暂停的用户外,它适用于所有用户。

当然,在这两个示例中,将xxxTooltip方法与qtip插件中的正确方法进行切换。


最终我使用了鼠标移动,这对我所做的事情来说是可以接受的,但公平地说,我没有尝试过其他方法。 - Jack Mills
我使用了mouseover和mouseout的解决方案,效果非常好! - IgorGanapolsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接