1

我想做的是几件事。但我创建了一个小提琴来演示发生了什么 - > http://jsfiddle.net/yohn/tDcgD/并且人们知道,一些代码来自https://github.com/stevedev/jquery.table_select.js

您可以单击表格中的单元格并拖动,它应该突出显示单元格并将它们保留在相应的网格视图中,但是每当我在同一个 mousedown 事件中返回时,我希望它取消选择最近选择的单元格,并且我一直在努力做到这一点。当你创建一个新表时,寻找它在 word 中的工作方式。

我知道修复将在以下循环中处理,但我无法正确处理..

for (y = start_y; y <= end_y; y++){
    for (x = start_x; x <= end_x; x++){
        table.find('tr:eq('+y+')').find('td:eq('+x+')').each(function (i,o) {
            var th = $(this)
            if(th.hasClass('selectable')){
                if(th.hasClass('recent')){} else {
                    th.toggleClass("selected").addClass('recent')
                }
            }
        });
    }
}

任何帮助将非常感激。

4

1 回答 1

2

我相信,这就是你所追求的。这是更新的小提琴

如果您查看.delegate('td.selectable', 'mouseover', function (),我添加了以下代码。

else
{                             
    $('.recent').removeClass('recent').removeClass('selected')
}

基本上,如果单击鼠标(mousedown)并悬停(即存在“最近”类时),最初会从元素中清除“最近”和“选定”类。其余的逻辑将负责计算网格的渲染/填充。

这应该解决您的问题。但是,您可能需要根据您的需要查看其他内容。

于 2013-09-18T06:46:53.810 回答