表格在没有ui的情况下点击和鼠标悬停时选择/取消选择单元格

时间:2013-09-16 05:13:25

标签: jquery select cell mouseover

我想做的是一些事情。但我创造了一个小提琴,以证明发生了什么 - > http://jsfiddle.net/yohn/tDcgD/只是让人们知道,有些代码来自https://github.com/stevedev/jquery.table_select.js

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

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我相信,这就是你所追求的。这是更新的fiddle

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

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

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

这应该解决你的问题。但是,您可能需要根据自己的需要调查其他事项。