2014-09-25 60 views
1

我有一個jQuery UI手風琴,我需要記住它的狀態(哪個標題是最後打開的)。手風琴從localStorage變量設置爲活動

這裏是我的揮杆吧:

var storedActive = localStorage.getItem("storedActive"); 
if (isNaN(storedActive)){ 
    storedActive = false; 
} 
console.log(storedActive); 
jQuery('#accordion').accordion({ 
    heightStyle: "content", 
    collapsible: true, 
    header: 'h4', 
    active: storedActive, 
    activate: function(event, ui){ 
     if(ui.newHeader.context){ 
      storedActive = ui.newHeader.context.id.slice(-1); //getting id of clicked header 
     }else{ 
      storedActive = false; 
     } 
     localStorage.setItem("storedActive", storedActive); 
    } 
}); 

console.log(storedActive)在第5行證明,最後點擊標題的值被記住和正確restotred。問題在於手風琴沒有打開任何標題。

奇怪的是,當我手動輸入值storedActive時,手風琴打開標題,因爲它應該。當從localStorage恢復值時,它只是有一些問題。

回答

0

我從localStorage獲取變量時忘記使用parseInt。現在一切正常。 Thx Ninsly!

var storedActive = parseInt(localStorage.getItem("storedActive")); 
if (isNaN(storedActive)){ 
    storedActive = false; 
} 
console.log(storedActive); 
jQuery('#accordion').accordion({ 
    heightStyle: "content", 
    collapsible: true, 
    header: 'h4', 
    active: storedActive, 
    activate: function(event, ui){ 
     if(ui.newHeader.context){ 
      storedActive = ui.newHeader.context.id.slice(-1); //getting id of clicked header 
     }else{ 
      storedActive = false; 
     } 
     localStorage.setItem("storedActive", storedActive); 
    } 
}); 
1

我用這個:

$(".accordion").accordion({ 
    activate: function(event, ui) {   
     localStorage.setItem("AccordionId", $(this).accordion("option", "active")) 
    }, 
    active: parseInt(localStorage.getItem("AccordionId")) 
} 

這個手風琴替換「AccordionId」通過一個唯一的ID,如果你在你的頁面得到多個手風琴。

它也適用於Jquery Tabs