В IE8 и Blackberry playbook функция javascript setInterval не работает должным образом

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

$('#next_item').bind(myDown,function (e) {
    config.scrolling = true;
    config.scrollTimer = setInterval(function (e) {
        if(!config.scrolling) return false;
        if(myScroll.x >= myScroll.maxScrollX){              
            myScroll.scrollTo((config.itemWidth+config.itemBoxSpacing), 0, 400, true);
        }else{
            config.scrolling=false;
            clearInterval(config.scrollTimer);
        }
    }, 100);
    return false;
});

Я использую iScroll 4. #next_item используется для прокрутки динамически добавленного div по клику. setInterval function() используется, потому что при одном щелчке я хочу прокручивать один div за раз, а при наведении мыши я хочу, чтобы div прокручивался до тех пор, пока я не нажму. Теперь проблема заключается в том, что одним нажатием более одной прокрутки div за раз в playbook blackberry, но она отлично работает в ipad, планшете Android и настольном браузере, включая IE8. Кроме того, когда я делаю mousedown в blacberry playbook, div продолжает прокручиваться до конца и не останавливается сразу при наведении мыши, а для IE8 div останавливается, и прокрутка кажется, что setInterval не работает должным образом. Какие изменения необходимо внести, чтобы это работало как в IE8, так и в плейбуке Blackberry?

Обновление:

var isIOS = config.isIpad || config.isIphone || config.isAndroid;
var myDown = isIOS ? "touchstart" : "mousedown";
var myUp = isIOS ? "touchend" : "mouseup";

$('#next_item').bind(myUp,function (e) {
    config.scrolling = false;
    clearInterval(config.scrollTimer);
    return false;
});

person user850234    schedule 21.02.2012    source источник
comment
$('#next_item').bind(myDown, откуда берется myDown?   -  person André Alçada Padez    schedule 21.02.2012
comment
@AndréAlçadaPadez Я обновил код   -  person user850234    schedule 21.02.2012


Ответы (1)


Я решил проблему с ежевикой. Мне нужно было просто изменить одну строку моего кода.

var isIOS = 'ontouchstart' in document.documentElement; /*This detects all touch devices*/

В моем более раннем коде я не обнаруживал плейбук Blackberry, поэтому он получал событие mousedown, которое вызывало запуск события touchstart по умолчанию для сенсорных устройств вместе с событием mousedown и, следовательно, неожиданным результатом.

Я все еще не мог решить проблему с IE8. Пожалуйста, подскажите, что делать для IE8.

person user850234    schedule 21.02.2012