2012-12-02 20 views
1

我絕對受此阻礙。在我稱之爲「setCookie」的行上,如果第二個函數參數與上面的current_cat或OR比較相同(即「藝術」),那麼整個if語句會中斷(並且函數不會在其中調用)。如果我改變參數使它不匹配(即「art_z」),那麼代碼就可以工作。多個「if」塊會發生問題;但代碼僅適用於一個「if」塊。沒有多少黑客可以解決這個問題 - 任何想法?非常感謝提前。Javascript如果/或比較似乎泄漏到函數調用?

var current_cat = getCookie("FOF_CURRENT_CATEGORY"); 

    if (menuitem == "menu_art" || current_cat == "art") 
    { 
    document.getElementById("menu_arc").className = "amble12graylight"; 
    document.getElementById("menu_art").className = "amble14blackregular"; 
    document.getElementById("menu_des").className = "amble12graylight"; 
    document.getElementById("menu_fas").className = "amble12graylight"; 
    document.getElementById("menu_sch").className = "amble12graylight"; 
    document.getElementById("menu_man").className = "amble12graylight"; 
    setCookie("FOF_CURRENT_CATEGORY","art",365); 
    } 

    if (menuitem == "menu_arc" || current_cat == "arc") 
    { 
    document.getElementById("menu_arc").className = "amble14blackregular"; 
    document.getElementById("menu_art").className = "amble12graylight"; 
    document.getElementById("menu_des").className = "amble12graylight"; 
    document.getElementById("menu_fas").className = "amble12graylight"; 
    document.getElementById("menu_sch").className = "amble12graylight"; 
    document.getElementById("menu_man").className = "amble12graylight"; 
    setCookie("FOF_CURRENT_CATEGORY","arc",365); 
    } 
+0

當你使用兩個if的話,你想用這兩個函數嗎?它是否應該進入條件與否? – polin

+0

如果menuitem ==「menu_arc」或「current_cat ==」爲「」,則將執行第二個if-block)。這意味着兩個if塊可以執行,覆蓋彼此的結果。 –

+0

你的描述有點混亂。你是否說你的代碼在setCookie(「FOF_CURRENT_CATEGORY」,「art」,365)上打破,但不在setCookie上(「FOF_CURRENT_CATEGORY」,「something_else」,365)? – indieman

回答

0

看來你在setCookie方法中有問題。

添加一個調試器,並檢查那裏似乎是什麼問題。

或者如果你可以分享可以複製的代碼,這將有所幫助。

+0

嗨夥計們 - 這裏還有一張紅色,尷尬的臉。 Rups - 我終於安裝了一個調試器,從Jan的評論中發現了這個問題,我的說法應該是:else if(menuitem ==「menu_arc」||(menuitem ==「」&& current_cat ==「arc」)) - 是的,我很慚愧。謝謝大家。 –

+0

它發生在我們所有人身上。 :) – Rups