2012-09-10 3 views
1

일부 html5 localstorage를 작동 시키려고했지만 운이 없었습니다.HTML5 저장/JQuery 데이터를 저장하지 않음

저장하지 않고 "저장하려면 클릭"링크를 클릭하면 기능에 대한 경고가 표시되지 않습니다.

나는 여기에서 뭔가를 잊고 있습니까? 그것이 document.ready 호출에 싸여 있기 때문에,

<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을 이동하거나 jQuery를 사용하여 요소에 직접 클릭 핸들러를 연결하십시오.

$(document).ready(function() { 

    loaddata(); //Load the saved data 

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

    } 
}); 

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

또는 다른 방법으로 여기

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

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

td 요소에 .val()를 사용하려고 시도를 포함하여 오류를 고정하는 jsFiddle이다. 또한 작동 여부에 관계없이 데이터를 다른 값으로 변경합니다.

+0

좋아요, savedata() 함수를 꺼 냈습니다. 이제 경고가 발생하지만 새로 고침을하면 새 데이터가로드되지 않습니다. o/모든 아이디어? – Satch3000

+0

@ Satch3000, 정확히 새 데이터로 저장 하시겠습니까? 로드 할 때'localStorage.mydata'의 값을'myDiv'에로드 한 다음'myDiv'를'localStorage.mydata'에 저장합니다. 어떤 시점에서도 값이 변하지 않습니다. 동일한 데이터를 앞뒤로 보낼뿐입니다. – Brandon

+0

@ Satch3000, 한 가지 더. 'id '를'td'에 할당 했으므로'.val()'을 사용할 수 없습니다. '.html()'을 대신 사용하십시오. – Brandon

관련 문제