"If mouseover" или "do while mouseover" в JavaScript/jQuery

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

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

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

    });

Ответы

Ответ 1

$('someObject').on('mouseenter', function() {
    this.iid = setInterval(function() {
       // do something           
    }, 25);
}).on('mouseleave', function(){
    this.iid && clearInterval(this.iid);
});

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

Ответ 2

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

Ответ 3

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

$(el).bind({
'mouseenter': function(){console.log('Mouse over');}, 
'mouseleave': function(){console.log('Mouse leave');}
});

Ответ 4

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