选择一行中的单元格

时间:2014-12-15 09:12:37

标签: javascript jquery timetable

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

目前一般选择工作(我创建了一个jsfiddle here),但我不能限制选择开始的行上的选择,我意识到原因是我无法获得行和列索引事件处理程序,但无法弄清楚原因:

    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
    })

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

我是这个JavaScript的新手,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

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

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

var col = $(this).parent().find("td").index($(this));
var row = $(this).parent().parent().find("tr").index($(this).parent());

答案 1 :(得分:0)

如果我理解了这个问题:

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

使用var $tr;存储当前行

.mousedown函数集当前行$tr = $(this).parent();

中 在.mouseove函数检查中

行是否相等:

if (isMouseDown && ($tr[0] === $(this).parent()[0]))