1

我编写了一个 jquery 函数来绑定 mousedown 上的 mouseover 事件,以获得单击并拖动以选择 td 的效果。我在表格行中有 10 个 td。这段代码的问题是,如果我想从 1 到 5 选择 td,并且我在 td1 上执行 mousedown 和 mouseover 直到 td5,td1 没有被选中(我正在检查/取消选中一个复选框)而是从 td2 中选择到td5。我如何解决它?任何建议表示赞赏。

这是代码:

$("#custom-interval-tbl td").mousedown(function() {
     $('#custom-interval-tbl td').bind('mouseover',function(){
            if($(this).find('input:checkbox').is(':checked')) {
                       $(this).find('input:checkbox').attr("checked", "");
                       $(this).css({background:"white"});
            } else {
                       $(this).find('input:checkbox').attr("checked", "checked");
                       $(this).css({background:"#6D7B8D"});
            }
     });
});

谢谢

4

1 回答 1

0

分配mouseover事件时,它永远不会被鼠标已经按下的事件激活。(由于鼠标已经结束,它永远不会被调用。)

您可以强制在您已经选择的 TD 上调用它。

$("#custom-interval-tbl td").mousedown(function() {
     $('#custom-interval-tbl td').bind('mouseover',function(){
            if($(this).find('input:checkbox').is(':checked')) {
                       $(this).find('input:checkbox').attr("checked", "");
                       $(this).css({background:"white"});
            } else {
                       $(this).find('input:checkbox').attr("checked", "checked");
                       $(this).css({background:"#6D7B8D"});
            }
     });
     $(this).mouseover(); // This part will call the mouseover event on your clicked TD
});
于 2012-08-15T18:21:04.493 回答