我正在尝试使用工具提示,以便在显示后淡出。除了在IE8中,我的代码工作得很好 - 当工具提示消失时,鼠标移动事件(在图像上)不断触发,并产生脉动效果......淡入/淡出/进/出。
问题与工具提示有关,因为如果我摆脱了工具提示代码,只有在移动鼠标时才会调用mousemove事件。
您可以在此处查看简化示例:
答案 0 :(得分:2)
是的,我对修复的想法似乎有效:
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();
});
答案 1 :(得分:1)
是的,我可以在IE7和IE8,jquery-1.6.2
中重现这一点我写过一个图片幻灯片,它使用fadeIn()/ fadeOut()在图片之间切换。如果鼠标光标位于幻灯片放映之上,则在切换图像时会出现img title =“...”工具提示。当工具提示消失时(浏览器在几秒钟后将其淡化),将调用mousemove()处理程序。
请参阅http://davidhoulder.com的首页,了解当前(2011年7月24日)在IE7 / 8中引发此错误的示例。如果我设法修复或解决此问题,我将更新此答案。
一种可能的解决方法是在.mousemove()处理程序中保存.pageX和.pageY,如果鼠标确实没有移动,则返回。