2010-12-07 44 views
1
function loadIgInnerPanelMenu(panelNum){ 

    var delayTime = 300; 

    if($('#igto1 .btMenuShow').length === 0){ 

     $('#igto1 .igInnerPanelBottomMenu').append(loadIgInnerBM(panelNum)).animate({'top':419},'fast',function(){}).addClass('btMenuShow').find('.btMenu').each(function(){ 
      $(this).stop(false,true).animate({'top':0},delayTime); 
      delayTime+=100;  
     }); 
    } 
    else{  
     // using inuse to prevent the botton quick switch 
     if(inuse === false){     

      $('#igto1 .igInnerPanelBottomMenu').append(loadIgInnerBM(panelNum)).find('.btMenu:gt(3)').each(function(){ 
       $(this).stop(false,true).animate({'top':0},delayTime); 
       delayTime+=100; 
      }); 

     }   
    } 

    alert(delayTime) 

}La valeur de la variable ne revient pas dans la fonction d'animation jquery!

cette fonction est appelée par un événement « clic » .mais la valeur de delayTime n'a pas remis à 300 après la fonction a été appelée again.The valeur delayTime est cumulable.

Merci beaucoup !!

Répondre

1

@gin,

vous déclarez la variable mais l'un des, si les conditions sont toujours exécutaient droit

le code suivant est exécuté pour vous et ce qui est pourquoi il est mise à une valeur différente

supprimer la ligne ci-dessous et l'impression, il doit toujours imprimer 300

delayTime+=100; 
`delyaTime=delyaTime+100;`// equivalent of above code...// you might be already knowing it 
+0

Merci .Mais pourquoi delayTime + = 100 va cumuler la valeur delayTime ?? – qinHaiXiang

0

essayez ceci:

function loadIgInnerPanelMenu(panelNum){ 

    var delayTime; 

    if($('#igto1 .btMenuShow').length === 0){ 

$('#igto1 .igInnerPanelBottomMenu').append(loadIgInnerBM(panelNum)).clearQueue(); 
delayTime = 300; 

     $('#igto1 .igInnerPanelBottomMenu').append(loadIgInnerBM(panelNum)).animate({'top':419},'fast',function(){}).addClass('btMenuShow').find('.btMenu').each(function(){ 
      $(this).stop(false,true).animate({'top':0},delayTime); 
      delayTime+=100;  
     }); 
    } 
    else{  
     // using inuse to prevent the botton quick switch 
     if(inuse === false){     

      $('#igto1 .igInnerPanelBottomMenu').append(loadIgInnerBM(panelNum)).find('.btMenu:gt(3)').each(function(){ 
$(this).stop(false,true).clearQueue(); 
delayTime = 300; 
       $(this).stop(false,true).animate({'top':0},delayTime); 
       delayTime+=100; 
      }); 

     }   
    } 

    alert(delayTime) 
}