我想在完成另一个代码后

时间:2017-08-17 15:51:57

标签: javascript jquery

我已经写了一个jQuery CLICK事件,在那个事件中有两个代码将在点击事件后执行但我想先完成第一个代码执行然后在完成后开始执行第二个代码。但是现在它们都在触发CLICK事件的同时执行。

第一个代码是关于slideUp的,所以我想首先完成slideUp然后开始执行第二个代码。这是Fiddle

我已经在这里附上了代码和图片,如果可以,请检查并帮助我。

$(".team-item-area").on('click', function(){
        $(this).siblings().find('.team-item-right-para').slideUp();
        $(this).find(".team-item-right-para").slideToggle(function(){
            var check = $(this).is(":visible");

            if(check == true)
            {
                $(this).parents('.team-item-area').siblings().find('img').hide();
                $(this).parents('.team-item-area').find("img").fadeIn();
            } else {
                $(this).parents('.team-item-area').find("img").show();
                $(this).parents('.team-item-area').siblings().find('img').fadeIn();
            }
        });


    })[enter image description here][1]

3 个答案:

答案 0 :(得分:0)

根据documentation,slideup函数有第二个参数,即动画完成后将调用的函数。第一个参数是幻灯片的持续时间。您可以根据需要进行设置(默认值为400)

$(this).siblings().find('.team-item-right-para').slideUp(400, function {
   ... code to execute after the slide is complete...
});

答案 1 :(得分:0)

在这里使用slideToggle方法,你可以在完成后做任何事情 http://api.jquery.com/slidetoggle/

答案 2 :(得分:0)

使用提到的解决方案@BenM或使用这样的东西:

$(this).find(first operation)
    .delay(1)
    .queue(function (next) {
        $(this).find(second operation);
        next();
});