2013-11-26 3 views
0

У меня есть элемент, щелкнув по какой функции вызывается методом jQuery .click. В теле функции есть условие. Когда я нажимаю на элемент один раз за раз, все работает гладко, но если я нажимаю два раза быстрее, условие, которое должно остановить функцию, не запускается, а функция выполняется два раза вместо одного. Таким образом, как будто клики накапливаются. Как я могу предотвратить это поведение метода .click?jQuery .click нечетное поведение

$(".collections_pager_right").click(function() { 
    if (collections_wrapper_left > 0 - collections_wrapper_width + 770) { 
     $(".collections_slider_wrapper").animate({left: "-=770"}, 400); 
    }; 
}); 
+1

Может быть, попробовать '$ остановить() анимировать ({слева: "- = 770"}, 400) ("collections_slider_wrapper.");..' – putvande

+0

Вы рассмотрели: HTTP: //api.jquery. com/dblclick/ –

+1

Каковы переменные в состоянии? – JJJ

ответ

0

Попробуйте добавить в свой элемент атрибут, например running = "false", после чего вы можете его проверить.

$(".collections_pager_right").click(function() { 
    if($(this).attr('running') == 'false'){ 
    $(this).attr('running','true'); 
    if (collections_wrapper_left > 0 - collections_wrapper_width + 770) { 
     $(".collections_slider_wrapper").animate({left: "-=770"}, 400, function(){ 
      $(this).attr('running','false');    
     }); 
    }; 
    } 
}); 
+0

Мне нравится идея, но это не сработало. –

Смежные вопросы