jQuery убирается при наведении мыши - PullRequest
5 голосов
/ 28 февраля 2010

У меня есть таблица, в которой я хочу изменить фон ячейки при наведении мыши и нажатии мыши, мое текущее решение не работает так, как я хочу:

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

Есть ли способ заставить его работать так?

1 Ответ

15 голосов
/ 28 февраля 2010

РЕДАКТИРОВАТЬ: Учитывая ваш комментарий выше, вы можете сделать что-то вроде этого:

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

Это будет цвет фона td при наведении мыши, но только если кнопка мыши нажата.


Звучит так, будто вы просто хотите изменить цвет при нажатии. Если это так, то это гораздо проще, чем вы пытаетесь.

$(document).ready() {

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

});

Это изменит фон td элементов желтого цвета при нажатии на них.

Это будет похоже на изменение цвета при наведении мыши.

РЕДАКТИРОВАТЬ: Только что заметил название вашего вопроса.

Если вы хотите вызвать щелчок при наведении курсора ...

$(document).ready() {

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

});

... конечно, в этом случае вы можете исключить click и просто изменить фон с событием mouseenter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...