Internet Explorer 8 - jquery/IE mousemove 事件在工具提示淡出时触发,但鼠标不移动



我正在尝试使用工具提示,以便在显示后淡出。我的代码工作得很好,除了在IE8中——鼠标移动事件(在图像上)随着工具提示的淡出而不断被触发,它产生了一种脉动的效果。。。渐隐。

这个问题与工具提示有关,因为如果我去掉了工具提示代码,那么只有在移动鼠标时才会调用mousemove事件。

你可以在这里看到一个简化的例子:

单击查看简化示例(使用IE8)

是的,我的修复想法似乎奏效了:

ElementLooper.prototype = {
init: function(items, control, outer){
...
var self = this;
...
this.px = null;
this.py = null;
...
outer.mousemove(function(e) {
                  if (self.px == e.pageX && self.py == e.pageY) {
                    return;
                  }
                  self.px = e.pageX;  self.py = e.pageY;
                  self.show_control();
                });

是的,我可以在IE7和IE8中重现这一点,jquery-1.6.2

我写了一个图像幻灯片,使用fadeIn()/fadeOut()在图像之间切换。如果鼠标光标位于幻灯片上,则在切换图像时会显示img title="…"工具提示。当工具提示消失时(浏览器在几秒钟后将其淡入淡出),将调用mousemove()处理程序。

请参阅的首页http://davidhoulder.com例如,当前(2011年7月24日)在IE7/8中引发此错误。如果我设法解决了这个问题,我会更新这个答案。

一种可能的修复方法是将.pageX和.pageY保存在.mousemove()处理程序中,如果鼠标真的没有移动,则返回。

最新更新