2015-06-07 74 views
0

我正在構建一個WordPress主題,並且我正在開發一個側欄,它在滾動過程中保持不變,並在您收到評論時上升。這裏是我的jQuery代碼的一部分:無法更改我的變量值(jQuery)

jQuery(window).bind('scroll', function() { 
    var flag = ''; 

    if (calcTop() === true && calcBottom() === false && flag !== 'false') 
    { 
     jQuery('#aside-sidebar').css({'position': 'fixed', "top": "59px"}); 
    } 
    else if (calcTop() === false && calcBottom() === false && flag !== 'false') 
    { 
     jQuery('#aside-sidebar').css({'position': 'absolute', "top": ""}); 
    } 
    else 
    { 
     flag = 'false'; 
     jQuery('#aside-sidebar').css({'position': 'absolute', "top": sidebarPosition()+"px"}); 
     console.log(flag); 
    } 
}); 

我的問題是,flag變量沒有根據if語句的最後部分改變。任何提示?

+1

您正在設置'var flag ='';'每次調用處理程序。不確定你期待什麼?聽起來你應該把它設置在點擊處理程序外 –

+0

這很簡單。謝謝你的幫助! – Edouard

回答

1

在else部分中,如果您將標誌設置爲'false',它肯定會設置爲u預期。

在你的條件部分,我認爲你可以添加一些重構,如果如果和其他部分你有兩個相似的條件。

以及爲什麼要將標誌設置爲字符串變量,而不是您可以在此處輕鬆使用布爾標誌。

最後但並非最不重要的,你可以觀看任何錯誤的控制檯。如果發生任何錯誤,則意味着它不會到達setter部分flag ='false';