Запретить jQuery запускать mouseenter на сенсорных устройствах

Я написал несколько причудливых эффектов прокрутки наведения в jQuery. Они отлично работают на настольном компьютере. Моя проблема в том, что на мобильном устройстве, поскольку пользователь нажимает на экран, мой код все еще считает, что пользователь зависает на моем .scrollright div и продолжает прокрутку.

Как я могу отключить это, или иначе просто предотвратить эту проблему, на мобильных/планшетных устройств?

$('.thumbnails .scrollright').on('mouseenter', function() {
    this.iid = setInterval(function() {
        var CurrentScrollLeft = $( ".thumbnails .thumbnailphotos" ).scrollLeft();
        $( ".thumbnails .thumbnailphotos" ).scrollLeft( CurrentScrollLeft+10 );         
    }, 50);
    }).on('mouseleave', function(){
        this.iid && clearInterval(this.iid);
    });

1 ответов


быстрая проверка для касания возможно?

var tap = ("ontouchstart" in document.documentElement);

затем оберните свой код в условие:

if(!tap){
    $('.thumbnails .scrollright').on('mouseenter', function() {
        this.iid = setInterval(function() {
            var CurrentScrollLeft = $( ".thumbnails .thumbnailphotos" ).scrollLeft();
            $( ".thumbnails .thumbnailphotos" ).scrollLeft( CurrentScrollLeft+10 );         
        }, 50);
    }).on('mouseleave', function(){
        this.iid && clearInterval(this.iid);
    });
}

что-то вроде этого в любом случае.