我想通过单击并拖动来选择时间表中的单元格,而限制选择仅发生在选择开始的行(比如行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的新手,任何帮助都会受到赞赏。
答案 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]))