Значение переменной не возвращается обратно в функцию jquery animate! - PullRequest
1 голос
/ 07 декабря 2010
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) 

}

эта функция вызывается событием 'щелчка'. Но значение delayTime не возвращается обратно в 300 после повторного вызова функции. delayTime значение было накоплено.

Большое спасибо !!

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

@ gin,

вы объявляете переменную, но одно из условий if всегда выполняется правильно

следующий код выполняется точно и почему он устанавливает другое значение

удалите нижнюю строку и напечатайте, она всегда должна печатать 300

delayTime+=100; 
`delyaTime=delyaTime+100;`// equivalent of above code...// you might be already knowing it
0 голосов
/ 07 декабря 2010

попробуйте это:

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) 
}
...