jQuery在鼠标悬停时被甩掉了

Jac*_*cob 5 javascript jquery dom mouseevent

我有一个表格,我想在鼠标移开时更改单元格背景和鼠标按钮,我当前的解决方案不能正常工作,因为我想要它:

function ChangeColor(sender) {

    sender.style.backgroundColor = 'yellow';

}

var clicking = false;


$(document).mouseup(function() {
    clicking = false;
});


$(document).ready(function() {
    $('#Table1 tr').each(function() {
        $('td', this).each(function() {
            $(this).mousedown(function() {
                clicking = true;
            });
            $(this).mousedown(function(event) {
                if (clicking==true) { ChangeColor(this); }
            });
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

有没有办法让它像那样工作?

use*_*716 16

编辑:鉴于您上面的评论,你可以做这样的事情:

$(document).ready(function() {
    isMouseDown = false

    $('body').mousedown(function() {
        isMouseDown = true;
    })
    .mouseup(function() {
        isMouseDown = false;
    });

    $('Table1 tr td').mouseenter(function() {
        if(isMouseDown)
            $(this).css({backgroundColor:'orange'});
    });
});
Run Code Online (Sandbox Code Playgroud)

这将为td鼠标悬停时的背景着色,但仅在鼠标按钮关闭时.


听起来你只想在点击时改变颜色.如果是这样的话,它比你正在尝试的要简单得多.

$(document).ready() {

    $('#Table1 tr td').click(function() {
        $(this).css({backgroundColor:'yellow'});
    });

});
Run Code Online (Sandbox Code Playgroud)

td单击它们时,这将更改元素黄色的背景.

它类似于鼠标悬停时更改颜色.

编辑:刚刚注意到你的问题的标题.

如果您想在悬停时触发点击...

$(document).ready() {

    $('#Table1 tr td').click(function() {
        $(this).css({backgroundColor:'yellow'});
    })
     .mouseenter(function() {
         $(this).click();
     });

});
Run Code Online (Sandbox Code Playgroud)

...当然,你可以消除click那种情况,只是改变mouseenter事件的背景.