«If mouseover» или «do while mouseover» в JavaScript / jQuery - PullRequest
13 голосов
/ 19 октября 2010

Существует ли решение JavaScript или jQuery для повторного запуска функции (после setTimeout), когда указатель мыши находится над объектом DOM?Иначе говоря, есть ли JavaScript "делать при наведении мыши" (или "если при наведении мыши")?

    $('someObject').bind('mouseover', function() {

        //Do the following while mouseover 
        $('someOtherObject').css('margin-left',adjustedLeft + 'px');
        setTimeout(/*do it again*/,25);

    });

Ответы [ 5 ]

39 голосов
/ 19 октября 2010
$('someObject').on('mouseenter', function() {
    this.iid = setInterval(function() {
       // do something           
    }, 25);
}).on('mouseleave', function(){
    this.iid && clearInterval(this.iid);
});

Пример Смотрите здесь

0 голосов
/ 02 января 2019
OBJ.addEventListener("mouseenter", function() {
  focus=true;
});
OBJ.addEventListener("mouseleave", function() {
  focus=false;
});

На всякий случай, если вы не хотите использовать jquery, вы можете использовать это:)

0 голосов
/ 06 декабря 2013

Я знаю, что это довольно старое, но я думаю, что правильная функция уже есть в JavaScript, onmousemove делает именно это.

0 голосов
/ 14 июня 2011

Я использую новый стиль привязки jQuery.

$(el).bind({
'mouseenter': function(){console.log('Mouse over');}, 
'mouseleave': function(){console.log('Mouse leave');}
});
0 голосов
/ 19 октября 2010

Я бы решил эту проблему, используя событие onmouseout.Запустите все, что вы намеревались сделать, когда указатель мыши находится над указанным компонентом события наведения мыши.Когда происходит событие onmouseout, я бы остановил его.

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