Функция JQuery для предотвращения появления двойного щелчка - PullRequest
2 голосов
/ 12 июля 2011

Следующая функция перемещает панель прокрутки вверх или вниз в зависимости от того, какой элемент нажат. Проблема состоит в том, что если пользователь дважды щелкает мышью, то переменная с именем offset не устанавливает правильную позицию, поскольку предыдущая анимация не закончилась. Нам нужен способ поставить анимацию в очередь, но я не знаю, как это сделать.

Я попробовал тайм-аут, но он вызывает функцию тайм-аута во время текущего тайм-аута, так что это тоже не годится.

var offset = 0;

$('#leftwheel li').click(function() {

    var leftid = '#BKD' + $('#sLeft').val();
    var doubleforward = $(leftid).next().next().attr('id');
    var doublebackward = $(leftid).prev().prev().attr('id');
    var offsettots = ($(this).parent().height() - 16) / 32;
    var $this = this;

    var offset = $($this).parent().position().top;
    if('#' + $($this).attr('id') == leftid) { return false; }


    else if($($this).attr('id') == doubleforward) {
        offset += -64;
        myScroll2.scrollTo(0, offset, 400);
    }
    else if($($this).attr('id') == doublebackward) {
        offset += 64;
        myScroll2.scrollTo(0, offset, 400);
    }

    else if('#' + $($this).attr('id') > leftid) {
        offset += -32;
        myScroll2.scrollTo(0, offset, 250);
    }

    else if('#' + $($this).attr('id') < leftid) {
        offset += 32;
        myScroll2.scrollTo(0, offset, 250);
    }

});

Есть идеи?

Marvelous

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Вид догадки, но:

$('#leftwheel li').dblclick(function(e) {
    e.preventDefault()
});

должен сделать трюк, предполагая, что #leftwheel li - это элемент, для которого вы хотите отключить двойной щелчок.

1 голос
/ 12 июля 2011

Установите флаг в начале и сбросьте его в конце, затем выполняйте код только в том случае, если флаг имеет значение true.

var flag = true;

$('#leftwheel li').click(function() {

    if ( flag ) {

        flag = false;

        // Your code here

        flag = true;

    }

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