2013-06-19 77 views
0

我有一個函數即時嘗試寫入,使我的側邊欄粘滯。jQuery ifElse語句沒有運行「其他」命令

我有以下幾點,在設置我的div位置時工作正常:固定,只有當我向後滾動頁面時,我的div類纔會被更改爲position:relative。

任何人都可以在我的語法中發現明顯的缺陷嗎?

$(window).scroll(function() { 
var scrollTop = $(window).scrollTop(), 
    divOffset = $('#sidebar').offset().top, 
    dist = (divOffset - scrollTop); 

if (dist > 50) { 
    $('#sidebar').css({position:"relative",top:""}); 
} else if (dist < 50) { 
    $('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"}); 
} 
}); 
+0

如果'dist' *等於* 50,那麼它就不屬於這兩種情況(不知道這是否是問題;只是觀察)。這是你的意圖嗎? – eldarerathis

+0

謝謝@eldarerathis我確實有> =我只是試圖調試它,所以我的語法都是凌亂的atm – Liam

+0

發佈一些標記請 –

回答

1

這不是if/else。這是一個if/else if沒有默認else條件。我想你會想覆蓋的情況下dist通過使用普通的舊if/else等於50

if (dist > 50) { 
    $('#sidebar').css({position:"relative",top:""}); 
} else { 
    $('#sidebar').css({position:"fixed",top:"0px","margin-left":"730px"}); 
} 

有沒有辦法,這些條件一個也不會執行(沒有語法錯誤)。您可以使用alertconsole.log來確定腳本的哪些部分正在執行。

聽起來像是問題在別的地方。

+0

感謝@sgroves,當我將該值記錄到控制檯356時,我的距離保持不變。 – Liam

+0

這是正確的;計算完成後,您不會更改'dist'。這個問題似乎在其他地方(也許'頂部:「」'?這看起來不正確) – sgroves