Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 重画后工具提示挂在画布上_Jquery_Html_Html5 Canvas - Fatal编程技术网

Jquery 重画后工具提示挂在画布上

Jquery 重画后工具提示挂在画布上,jquery,html,html5-canvas,Jquery,Html,Html5 Canvas,我有一个HTML5画布应用程序,下面有几个普通按钮。我在按钮上有工具提示,它们在静态环境下似乎可以正常工作。(我仍然不明白为什么禁用按钮的工具提示与启用按钮的工具提示不同。) 当我将鼠标悬停在已启用的按钮上时,其工具提示将显示在画布表面的按钮上方。(这些是正常的jQuery工具提示。)指针离开按钮时,工具提示消失 但是,如果我按下按钮(当然此时会显示工具提示),我的按钮将在画布上启动一个动画序列,工具提示将永远停留在画布上。在动画开始后,将鼠标移到其他位置不会取消工具提示。其他工具提示仍然可以正

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

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

但是,如果我按下按钮(当然此时会显示工具提示),我的按钮将在画布上启动一个动画序列,工具提示将永远停留在画布上。在动画开始后,将鼠标移到其他位置不会取消工具提示。其他工具提示仍然可以正常工作

在制作动画的过程中,我多次清理和重画画布,但工具提示仍然可见,因此它是与画布分离的矩形

在动画中重新绘制之前,我尝试将按钮标题设置为null和空。两者都没有帮助。我想为按钮创建一个合成的鼠标,但我不知道怎么做

这发生在Chrome和Firefox上

还有其他想法吗

回答 正如沃尔夫所建议的那样,当我削减我的大量程序试图创建一个小小提琴时,我发现了问题的根源

禁用按钮后,其工具提示不会消失。如果取消禁用按钮,工具提示仍然不会消失。但是,如果将鼠标悬停在未禁用状态的按钮上,然后再将鼠标悬停,则工具提示将消失

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

我认为这是个错误,我看不出有什么好办法。当我想禁用按钮时,我不知道工具提示是否显示。我将把它提交给jQuery团队

谢谢你的收听


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

你能不能制作一把小提琴,这样我们就可以处理它。我不知道小提琴是什么。我已经把我的程序压缩到32KB,分为三个文件。够小吗?如果是这样,我将如何交付它?只需在中更新您的代码即可。只上传解释问题所需的代码。如果代码较少,您将得到快速响应。您应该学习如何在JSFIDLE上操作,因为它将在以后对您有所帮助。