2013-07-11 96 views
0

我使用JQuery隱藏頁面的某些部分並顯示其他頁面(當前子頁面,同時隱藏所有其他頁面)。然而,當我點擊的變化適用於只需要1秒,之後的造型重置爲默認的按鈕...CSS中的JQuery更改不保留

這是部分的代碼,例如:

$(document).ready(function(){ 
$("#NavMenu a").on('click', function() { 

    var chosen = $(this).attr("id"); 

    $(".SubPage").css('display', 'none'); 
    $(".SubPage, #" + chosen).css('display', 'block'); 

}); 
}); 

子頁面= A類用於頁面上的所有子篇文章; NavMenu =用於選擇頁面部分的主菜單的ID; 每個子頁面都有其自己的變量「selected」保存的ID。

*如果我改變屬性給他人(用於測試目的),像「字體大小」被改變,而不是「顯示」,比如,他們仍然閃爍一秒鐘,切換回他們使用了什麼成爲。

+0

這聽起來就像它來自代碼中的其他地方一樣。沒有更詳細的例子,我們所能做的只是猜測。你有沒有嘗試在像jsfiddle這樣的東西中再現這個? – Lochemage

+0

我複製粘貼它,但當我嘗試點擊菜單中的鏈接時,它又閃爍,然後說:「{」error「:」請使用POST請求「}」。有任何想法嗎? – Geri

+0

您是否使用某個插件來設置菜單的樣式?您需要提供更多信息。 – pasine

回答

0

我已將your JSFiddle更新爲有效的東西。

我削減了很多,因爲你包括超過你需要的。

你的一個選擇的是錯誤的:

$(".SubPage, #" + chosen).css('display', 'block'); 

需要的是:

$(".SubPage#" + chosen).css('display', 'block'); 

另外請注意,您可以使用簡單.show().hide()方法:

$("#NavMenu a").on('click', function() { 
    var chosen = $(this).attr("id"); 
    $(".SubPage").hide(); 
    $(".SubPage#" + chosen).show(); 
    }); 
+0

href =「javascript:void(0)」似乎可以做到這一點,但我也願意接受其他建議(這看起來有點不合理)。另外,我對引起初始錯誤的原因最爲好奇。 – Geri

+0

我不得不改變href以使其工作,是的。而'#'是非常標準的,如果你不喜歡它,那就用黑客。大多數人似乎沒有問題:) – Johannes