Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 - Fatal编程技术网

Javascript 用鼠标拖动选择对角表格单元格

Javascript 用鼠标拖动选择对角表格单元格,javascript,jquery,Javascript,Jquery,我有一个4x3表格,我发现很难处理对角表格单元格的选择。我用这个代码作为基础。但是,当我单击表格单元格并沿对角线拖动它时,不必要的单元格也会被标记。例如,如果我选择B和F单元格,将标记更多的单元格。A、E和I也是如此。如何仅选择对角线表格单元格 <table id="table"> <tr> <td>A</td> <td>B</td> <td>C</td> <

我有一个4x3表格,我发现很难处理对角表格单元格的选择。我用这个代码作为基础。但是,当我单击表格单元格并沿对角线拖动它时,不必要的单元格也会被标记。例如,如果我选择B和F单元格,将标记更多的单元格。A、E和I也是如此。如何仅选择对角线表格单元格

 <table id="table">
  <tr>
    <td>A</td>
    <td>B</td>
    <td>C</td>
    <td>J</td> 
  </tr>
  <tr>
    <td>D</td>
    <td>E</td>
    <td>F</td>
    <td>B</td>
  </tr>
  <tr>
    <td>G</td>
    <td>H</td>
    <td>I</td>
    <td>K</td>      
  </tr>
</table>

A.
B
C
J
D
E
F
B
G
H
我
K

js和css代码相同

假设您只想选择与矩形图案匹配的单元格:

您需要用更复杂的方法交换
切片
,因为您不想给区域上色,而是要给单元格数组的多个部分上色

示例中的数组如下所示

[A、B、C、D、E、F、G、H、I]

当用户开始拖动索引
2
(B)并拖动到
5
(F)时,您的代码将在
2
5
的范围内着色。其中包括
3
(D)

因此,您需要计算起点和终点位置的列和行偏移,而不是简单地计算范围

如果每一行和每一列都有一个固定的大小(在您的示例3中),那么计算起来就有点容易了:

var列=索引%3
var行=数学层(索引/3)

然后,您只需对每个列(在起始列和结束列之间)从起始行迭代到结束行

您可以查看以下快速示例代码:


假设您只想选择与矩形图案匹配的单元格:

您需要用更复杂的方法交换
切片
,因为您不想给区域上色,而是要给单元格数组的多个部分上色

示例中的数组如下所示

[A、B、C、D、E、F、G、H、I]

当用户开始拖动索引
2
(B)并拖动到
5
(F)时,您的代码将在
2
5
的范围内着色。其中包括
3
(D)

因此,您需要计算起点和终点位置的列和行偏移,而不是简单地计算范围

如果每一行和每一列都有一个固定的大小(在您的示例3中),那么计算起来就有点容易了:

var列=索引%3
var行=数学层(索引/3)

然后,您只需对每个列(在起始列和结束列之间)从起始行迭代到结束行

您可以查看以下快速示例代码:


有问题吗?您的代码是正确的,并且执行它应该执行的操作。。除非您需要其他内容,请描述它。@Rouby当我选择对角线时,我只想选择对角线单元格……而不是其他表格单元格。我的理解是:我使用了“链接”处的代码,我不知道它是什么或如何做的,所以请帮我修复它。kthxbye:|有问题吗?您的代码是正确的,并且执行它应该执行的操作。。除非您需要其他内容,请描述它。@Rouby当我选择对角线时,我只想选择对角线单元格……而不是其他表格单元格。我的理解是:我使用了“链接”处的代码,我不知道它是什么或如何做的,所以请帮我修复它。kthxbye:|我不明白。你能更具体一点吗?为了只突出显示[B]和[F]或任何对角线,我为什么要计算范围?我不是故意粗鲁,但你明白你的代码是什么以及为什么吗?不,我不明白代码。我是javascriptI新手。我不懂。你能更具体一点吗?为了只突出显示[B]和[F]或任何对角线,我为什么要计算范围?我不是故意粗鲁,但你知道你的代码是什么,为什么吗?不,我不懂代码。我是javascript新手