2012-09-10 93 views
1

我想獲得一些html5 localstorage工作,但沒有運氣。HTML5存儲/ JQuery不保存數據

這不是保存,當我點擊「點擊保存」鏈接時,我沒有得到該函數的警報。

我在這裏忘記了什麼嗎?

這裏的下面全碼:

<html> 
<head> 
<title></title> 
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 

<script> 
$(document).ready(function(){ 

loaddata(); //Load the saved data 

function loaddata() { 
    $('#mydiv').val(localStorage.mydata); 

} 


function savedata() { 
    localStorage.mydata = $('#mydiv').val(); 
    alert('Data Saved!'); //This is not showing up 
} 


}); 
</script> 
</head> 
<body> 

<a href="#" onclick="savedata();">Click to Save</a> 

<table> 
    <tr> 
     <td id="mydiv">0</td> 
    </tr> 
</table> 

</body> 
</html> 
+0

你的函數不應該在$(document).ready部分。他們應該在那之外。 –

回答

3

你不能從你的鏈接的onclick處理程序訪問savedata,因爲它是包裹在document.ready通話。

savedata移出document.ready,或者使用jQuery將點擊處理程序直接附加到元素。

​​

或者其他方式

<a href="#" id="savebtn">Click to Save</a> 

$("#savebtn").click(function() { 
    localStorage.mydata = $('#mydiv').val(); 
    alert('Data Saved!'); //This is not showing up 
}); 

這裏是一個jsFiddle,修復你的錯誤,包括嘗試將td元素上使用.val()。它也將數據更改爲不同的值,您可以看到它是否正常工作。

+0

好吧,我已經移除了savedata()函數,現在它會發出警報,但是當我刷新它不會加載任何新數據時:o /任何想法? – Satch3000

+0

@ Satch3000,你究竟將什麼保存爲新數據?在加載時,將'localStorage.mydata'的值加載到'myDiv'中,然後將'myDiv'保存到'localStorage.mydata'中。價值從來沒有改變,只是來回發送相同的數據。 – Brandon

+0

@ Satch3000,還有一件事。您已將'id'分配給'td',這意味着您不能使用'.val()'。改用'.html()'。 – Brandon