Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查jquery hide是否已完成执行_Jquery - Fatal编程技术网

检查jquery hide是否已完成执行

检查jquery hide是否已完成执行,jquery,Jquery,我正在尝试学习jQuery。我只是尝试使用基本的显示和隐藏创建一个带有下一个和上一个按钮的简单图片查看器。因此,脚本的明显流程是先隐藏上一个图像,然后显示下一个图像。但有时当我快速单击下一个按钮时,它显示下一个图像,而不完成上一个图像的.hide()。 我需要一个优雅的方法来检查.hide()执行是否完成,并在执行过程中等待。 下面是代码片段 var picArray = new Array('#test1','#test2','#test3','#test4'); var picArrayIn

我正在尝试学习jQuery。我只是尝试使用基本的显示和隐藏创建一个带有下一个和上一个按钮的简单图片查看器。因此,脚本的明显流程是先隐藏上一个图像,然后显示下一个图像。但有时当我快速单击下一个按钮时,它显示下一个图像,而不完成上一个图像的.hide()。 我需要一个优雅的方法来检查.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();
});
});
var picArray=新数组('test1'、'test2'、'test3'、'test4');
var picArrayIndex=0;
$(文档).ready(函数()
{
$(picArray[picArrayIndex]).show();
$(“.next btn”)。单击(函数(){
picArrayIndex++;
如果(picArray索引>picArray.length-1)
{picArrayIndex=0;
$(picArray[picArray.length-1]).hide();
}
$(picArray[picArrayIndex-1]).hide();
$(picArray[picArrayIndex])。设置动画({
不透明度:1,
hspace:80
},1000,函数(){
//动画完成。
});
$(picArray[picArrayIndex]).effect(“反弹”{方向:'left',时间:1},500);
$(picArray[picArrayIndex]).show();
});
$(“.prev btn”)。单击(函数(){
picArrayIndex--;
如果(picArrayIndex<0)
{picArrayIndex=picArray.length-1;
$(picArray[0]).hide();}
$(picArray[picArrayIndex+1]).hide();
$(picArray[picArrayIndex]).show();
});
});

您可以签入隐藏回调:-

$(ele).hide("duration in milliseconds",function(){
   //your code after hiding is done.
});

对于我需要使用promise来确保完成隐藏的复杂解决方案,您可以使用以下实现:

$(obj).hide().promise().done(function (){ /* Your code goes here */ });

您可以在
.hide()
的末尾添加一个回调函数,然后在
.hide()
完成后调用希望发生的操作。下面的帖子介绍了如何禁用按钮,直到动画完成: