重绘后,工具提示在画布上挂起

时间:2013-01-23 16:57:21

标签: jquery html5 html5-canvas

我有一个HTML5画布应用程序,下面有几个普通按钮。我在按钮上有工具提示,它们在静态情况下似乎工作正常。 (我仍然不明白为什么禁用按钮的工具提示与启用按钮的工具提示不同。)

当我将鼠标悬停在已启用的按钮上时,其工具提示会显示在画布表面上的按钮上方。 (这些是正常的jQuery工具提示。)当指针离开按钮时,工具提示就会消失。

但是,如果我按下按钮(当然工具提示在那一点显示),我的按钮会在画布上启动一个动画序列,并且工具提示永远停留在画布上。在动画启动后,将鼠标移动到其他位置不会取消工具提示。其他工具提示继续正常工作。

在动画过程中,我正在清理和重绘画布数十次,但工具提示仍然可见,因此它是独立于画布的矩形。

我尝试将按钮标题设置为null并清空,然后重新绘制动画。没有帮助。我想为按钮创建一个合成鼠标,但我不知道该怎么做。

这种情况发生在Chrome和Firefox上。

还有其他想法吗?

答案 正如沃尔夫所建议的那样,当我削减我试图创造一个小小提琴的实质性程序时,我找到了问题的根源。

禁用按钮后,它的工具提示不会消失。如果取消禁用该按钮,工具提示仍然不会消失。但是,如果您将鼠标悬停在处于非禁用状态的按钮上,然后取消悬停,则工具提示将消失。

显然,如果禁用该按钮,处理工具提示(浏览器?)的代码不会处理mouseleave上的按钮工具提示。但是在重新启用按钮后,它将正确处理任何鼠标移动。

我认为这是一个错误,我没有看到一个好的解决方法。当我想要禁用按钮时,我无法知道工具提示是否显示。我将把它提交给jQuery团队。

感谢您的聆听。

解决方法:在禁用按钮之前调用$(“#buttonid”)。mouseleave()。该错误似乎在几个浏览器中,它甚至可能被称为一个功能,所以它不太可能很快修复。解决方法的缺点是它使用户移动指针以获取工具提示,因此浏览器中的正确解决方案会更好。但至少有一个合理的解决方法。

0 个答案:

没有答案