Я искал и нашел три довольно хороших поста, но все они анимировались при щелчке, а не при щелчке, отправляя параметры в функцию, которая анимирует, поэтому ни .stop (), stop (true, true), ни event.stopPropagation ()работает, хотя, возможно, я ставлю это в неправильном месте.Таким образом, мой вопрос.
То, что я пытаюсь предотвратить, - это (по какой-либо причине) ручка для нажатия, которая быстро щелкает по всем доступным ссылкам назад и в-четвертых и облажает математику, используемую для вычисления положения ползунка div /изображение должно быть.Как только анимация останавливается, изображение перестает работать, поэтому мне нужно понять, где сказать: «Хорошо, что-то было нажато, не допускайте других щелчков, пока не появится соответствующее изображение».
Опять же, разница в том, что я пытаюсь сделать, и в том, что я обнаружил, заключается в том, что вызов анимации происходит не непосредственно под щелчком, а после того, как щелчок произвел некоторые вычисления и отправил эти числа в другую функцию.
У меня есть это:
$('#navs li').click(function() {
var currentLocationNum = $('li.cs_current').index();
var stepClicked = $(this).index();
if (stepClicked == currentLocationNum)
{ return false;
}
else {
var lftEdgeNx = $('.slidingChartHolder').position().left;
var newLeftEdge = (stepClicked - currentLocationNum) * imageWidth;
moveMaster(lftEdgeNx + newLeftEdge, stepClicked);
}
});
и функция перемещения:
function moveMaster(leftEdge, newcs_current) {
$('.slidingChartHolder').fadeTo(200, .2).animate({
left: leftEdge
}, "fast").fadeTo(200, 1);
$('li.cs_current').removeClass('cs_current')
$('li:eq('+newcs_current+')').addClass('cs_current');
if ($('li.cs_current').index() === 0) {
$('#previous').addClass('hideMe');
$('#next').removeClass('hideMe');
} else if ($('li.cs_current').index()==4){
$('#previous').removeClass('hideMe');
$('#next').addClass('hideMe');
}
else {
$('#previous').removeClass('hideMe');
$('#next').removeClass('hideMe');
}
}
спасибо за понимание!