2011-02-22 87 views
0

以下是我正在嘗試做的事情......這很簡單,顯然在我正在做的事情上一定有什麼問題,但我看不到它,希望你能幫助我......我有一個垂直Jquery菜單(使用手風琴),我想記住它的狀態。所以,我有這樣的代碼在我的母版頁在手風琴處理每個點擊:Jquery Menu狀態

$(document).ready(function() { 
    var toOpen = <%= MySessionInfo.Current.MyMenu %>; 
    if(toOpen != -1){    
     $("#accordionMenu").accordion("activate", toOpen); 
    } 

    $("#accordionMenu").click(function(){ 
     var activate = $("#accordionMenu").accordion("option", "active"); 
     if (activate != false) { 
      $.getJSON("/Account/SetMenu", { CurrentMenu: activate }, function (j) {}); 
     } 
    }); 
}); 

然後我有定義爲一組,其中有一個UL的div和大量華里的菜單局部視圖每個部分的鏈接。

而在我的賬戶控制器我用這個:

public void SetMenu(int CurrentMenu) 
{ 
    MySessionInfo.Current.MyMenu = CurrentMenu;  

} 

這是怎麼回事?:它工作正常,在開始和保存狀態好,但在接下來的頁面加載它不會刷新的狀態。我也觀察到恰好在視圖中調用「SetMenu」之後,在進入被調用視圖之前發生此錯誤:

未捕獲的異常:[異常...]組件返回的失敗代碼:0x80040111(NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.getAllResponseHeaders]」 nsresult: 「0x80040111(NS_ERROR_NOT_AVAILABLE)」 的位置: 「JS框架:: http://localhost:20984/Scripts/jquery-1.4.2.min.js ::匿名::行7207」 數據顯示:無]

我希望你能儘快給我的手在這個問題上。 .. 問候!

回答

0

解決方案比問題本身更爲陌生。我創建了一個JavaScript函數調用jQuery的「激活」,我把它在人體內的末日,因爲在window.onload = updateMenu「updateMenu()」:

function updateMenu(){ 
    var toOpen = <%= MySessionInfo.Current.MyMenu %>; 
    if(toOpen != -1){    
     $("#accordionMenu").accordion("activate", toOpen); 
    } 
} 

window.onload=updateMenu; 

我不知道爲什麼它的工作原理是而不是其他方式,但它對我來說工作得很好。

0
var toOpen = '<%= MySessionInfo.Current.MyMenu %>';