Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Javascript 检测单击的画布矩形_Javascript_Jquery_Html_Html5 Canvas - Fatal编程技术网

Javascript 检测单击的画布矩形

Javascript 检测单击的画布矩形,javascript,jquery,html,html5-canvas,Javascript,Jquery,Html,Html5 Canvas,我有一个html格式的画布: <canvas id="canvas" width="450" height="450"></canvas> 我做了九个同样大小的正方形。我想看看我点击了哪个方块作为警报函数。我该怎么做 完整代码如下: 很抱歉,我在JSFIDLE中没有任何与我的问题相关的代码,但我不知道如何开始编写它 谢谢 这是您的onclick功能: $("#canvas").click(function(e) { var yNames = ['upper',

我有一个html格式的画布:

<canvas id="canvas" width="450" height="450"></canvas>

我做了九个同样大小的正方形。我想看看我点击了哪个方块作为警报函数。我该怎么做

完整代码如下:

很抱歉,我在JSFIDLE中没有任何与我的问题相关的代码,但我不知道如何开始编写它


谢谢

这是您的
onclick
功能:

$("#canvas").click(function(e) {
  var yNames = ['upper', 'middle', 'lower'],
    xNames = ['left', 'middle', 'right'];
  alert(('The '
    + yNames[Math.floor((e.offsetY * 3) / canvas.height)] + '-'
    + xNames[Math.floor((e.offsetX * 3) / canvas.width)] + ' box was clicked.')
      .replace('middle-middle', 'middle'));
});

您的循环中还有一个语义错误:它应该是
i-这应该有帮助。。。所以,一些数学…:)该死,标记为重复。我仍然可以分享这把工作小提琴:@Xufox非常感谢,伙计,你是唯一一个为这个问题提供答案的人。@Xufox把它作为回答人。好的,我已经重写了答案(很幸运,答案很短)。