jquery回调函数

时间:2011-05-11 14:45:49

标签: jquery

我有一个回调函数如下

$('#lnkClientData').click(function() {


        $('#clientdiv').slideToggle(function(){
            if($('#lnkClientData').hasClass('open'))
            {

                $('#divnext').slideToggle();
                $('#lnkClientData').removeClass('open').addClass('close');
            }
            else
            {

             $('#divnext').slideToggle();
             $('#lnkClientData').removeClass('close').addClass('open');
            }
        }
        );
     });

我希望$('#divnext').slideToggle();代码在外部$('#clientdiv').slideToggle()函数之前执行.... 现在,外部函数首先被调用....我想要做的是在div幻灯片时隐藏一个锚点...但是他发生在div幻灯片...之前/ p>

  if($('#clientDiv').is(':visible'))
             {
             alert('');
               //  $('#divnext').hide();
                 //$('#clientDiv').slideToggle(); // Or whatever animation you want
             }
             else
             {
                 //$('#clientDiv').slideToggle(function() // Or whatever animation   you   want
                 //{
                   //  $('#divnext').show();
                 //});
             }

2 个答案:

答案 0 :(得分:1)

您只需要重新排序代码(不知道slideToggle实现的具体情况,我假设您的参数在幻灯片完成时是一个回调)

 $('#divnext').slideToggle(function()
 {
     // Code here executes after slide is finished but before clientdiv starts
     $('#clientdiv').slideToggle(function()
     {
          // Code here executes after both slides are done
     });
 });

编辑:

在您的情况下,只需使用一个slideToggle方法来显示/隐藏客户端div不是最好的主意。

 if($('#clientDiv').is(':visible'))
 {
     $('#yourLink').hide();
     $('#clientDiv').slideDown(); // Or whatever animation you want
 }
 else
 {
     $('#clientDiv').slideUp(function() // Or whatever animation you want
     {
         $('#yourLink').show();
     });
 }

答案 1 :(得分:0)

代码设置为切换lnkClientData然后在完成切换clientdiv时,如果你交换它们,即:

$('#divnext').click(function() {
    $('#clientdiv').slideToggle(function(){
        if($('#lnkClientData').hasClass('open'))
        {

            $('#lnkClientData').slideToggle();
            $('#lnkClientData').removeClass('open').addClass('close');
        }
        else
        {

         $('#lnkClientData').slideToggle();
         $('#lnkClientData').removeClass('close').addClass('open');
        }
    }
    );
 });