Jquery Mousedown和Mouseover问题

时间:2012-08-15 18:17:03

标签: html javascript-events jquery

我编写了一个jquery函数来绑定mousedown上的mouseover事件,以获得点击和拖动选择td的效果。我在表格行中有10个td。这段代码的问题是,如果我想从1到5选择td并且我在td1上进行mousedown而将鼠标悬停到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"});
            }
     });
});

由于

1 个答案:

答案 0 :(得分: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
});