Я пытаюсь изучить jQuery.I просто попытался создать простой просмотрщик изображений со следующими и предыдущими кнопками, используя базовое шоу и скрыть. Смысл очевидного потока скрипта состоял в том, чтобы сначала скрыть предыдущее изображение и затем показать следующее изображение. Но иногда, когда я быстро нажимаю на следующую кнопку, он отображает следующее изображение без завершения .hide() предыдущего. Мне нужен элегантный способ проверить, завершено ли выполнение .hide() или нет, и ждать, пока оно будет выполнено. Вот фрагмент кодаПроверка выполнения jquery hide
var picArray = new Array('#test1','#test2','#test3','#test4');
var picArrayIndex = 0;
$(document).ready(function()
{
$(picArray[picArrayIndex]).show();
$(".next-btn").click(function(){
picArrayIndex++;
if(picArrayIndex > picArray.length - 1)
{picArrayIndex = 0;
$(picArray[picArray.length - 1]).hide();
}
$(picArray[picArrayIndex - 1]).hide();
$(picArray[picArrayIndex]).animate({
opacity: 1,
hspace:80
}, 1000, function() {
// Animation complete.
});
$(picArray[picArrayIndex]).effect("bounce", { direction:'left', times:1 }, 500);
$(picArray[picArrayIndex]).show();
});
$(".prev-btn").click(function(){
picArrayIndex--;
if(picArrayIndex < 0)
{picArrayIndex = picArray.length - 1;
$(picArray[0]).hide();}
$(picArray[picArrayIndex + 1]).hide();
$(picArray[picArrayIndex]).show();
});
});
Вы можете добавить функцию обратного вызова в конце '.hide()', а затем вызвать то, что вы хотите, после того, как завершится «.hide()». –
В следующей статье описывается, как отключить вашу кнопку до завершения анимации: http://stackoverflow.com/questions/3618958/jquery-disable-next-button-until-animation-finishes –