2012-09-10 95 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