0

我想通过单击和拖动来选择时间表中的单元格,同时限制选择只发生在选择开始的行(比如行 A)上 - 如果光标移出 A 行,并且一旦它回到行,则不执行任何操作A、选择第一个单元格和当前单元格之间的单元格(包括)。

目前一般选择有效(我在这里创建了一个jsfiddle ),但我无法限制选择开始的行上的选择,我意识到原因是我无法在事件处理程序中获取行和列索引,但无法弄清楚为什么:

    var isMouseDown = false;
    var row = -1;    // row to start a selection

    $("#our_table td")
        .mousedown(function () {
        isMouseDown = true;

        row = $(this).parent().index();    // doesn't work!!!

        return false; // prevent text selection
    })

我从这里找到了一个示例,其中可以在悬停事件中检索行/列索引,但是当我将脚本放入我的脚本时,即使选择也不起作用:(

我是这个 JavaScript 的新手,任何帮助将不胜感激。

4

2 回答 2

0

如果我理解了这个问题:

http://jsfiddle.net/ocu36uwk/11/

用于var $tr;存储当前行

.mousedown函数中设置当前行$tr = $(this).parent();

.mouseove函数检查中行是否相等:

if (isMouseDown && ($tr[0] === $(this).parent()[0]))
于 2014-12-15T11:51:02.620 回答
0

您需要添加您想要索引的元素。

这些函数应返回所选元素的行和列的索引。您首先找到一个元素的集合,然后在 index 函数中指定您想要索引的集合中的元素。

var col = $(this).parent().find("td").index($(this));
var row = $(this).parent().parent().find("tr").index($(this).parent());
于 2014-12-15T09:18:38.073 回答