Javascript编码似乎停滞不前

时间:2013-09-30 13:30:36

标签: javascript html

对于模糊的标题感到抱歉,但这是我的问题:

我有一个我从Javascript生成的HTML表格,这很好,表格按预期生成,没有任何问题。

当用户点击一个单元格时,它会突出显示该单元格(如果单元格突出显示,则取消突出显示),这也可以正常工作。

然后我们需要能够拖动细胞(当鼠标停下来)并突出显示它们徘徊的细胞,我设法做到了,但这不是最好的解决方案,所以有人问我们是否可以选择一个细胞,然后悬停到另一个细胞,其间的所有细胞都会突出显示。

For example :

Start Cell = Row 1, Cell 1

End Cell = Row 3, Cell 3

Highlighted Cells = R1C1, R1C2, R1C3, R2C1, R2C2, R2C3, R3C1, R3C2, R3C3.

我设法让这个解决方案起作用,这里有一个显示解决方案的JSFiddle,如果你点击第一个单元格并按住鼠标并拖动到最后一个单元格它可以正常工作。

我的问题是,如果你从最后一个单元格(左下角)拖动到顶部单元格(右上角),突出显示效果似乎会随机停止,直到你在第2行或第3行。

有什么理由说会发生这种情况吗?我的代码不正确/效率低吗?

我已经坚持了一段时间,似乎无法找到原因。

非常感谢任何帮助。

P.S。 - 这个解决方案必须是一个完全的Javascript解决方案,遗憾的是,jQuery不能用于此解决方案,因为我们要求它是一个单独的HTML文件,并且必须可以在没有Internet连接的情况下使用。

1 个答案:

答案 0 :(得分:3)

当您提取rowNum和cellNum时,在ClickCell函数中,您必须将值转换为整数:

var RowNum = parseInt(cellID.substring(1, cellID.indexOf('C')), 10);
var CellNum = parseInt(cellID.substring(cellID.indexOf('C') + 1, cellID.length), 10);