2013-07-10 2 views
0

버튼을 눌렀을 때 실행되는 jQuery 함수에는 다음과 같은 문이 있습니다.jquery .data가 정상적으로 작동하지 않습니다.

$("#Button1").click(function (evt) { // automatically bind the click event 
    evt.preventDefault(); 
    var loc = window.location.href; 
    $.ajax({ 
     type: 'POST', 
     url: loc + "/GetDate", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     success: function (msg) { 
      $("#Label1").text(msg.d); 
      $("#Label1").data("dateAndTime", msg.d); 

      alert("the date and time is " + $("#Label1").data("dateAndTime")); 
     } 
    }); 
}); 

버튼을 영문에서 :

<asp:Button ID="Button3" runat="server" Text="Button" OnClick="Button3_Click" /> 

Button3_Click 빈 방법이다 나는 즉시 경고에 "dateAndTime의"의 값을 표시하기 때문에이 예상 않는 한.

이 값은 브라우저 창이 열려있는 한 사용할 수 있다는 것을 알고 있습니다. 호출 된 함수가 완료되고 페이지가로드 된 후 포스트 백을 발생시키는 버튼을 누릅니다. 나는 "준비"기능에서 동일의 .js 파일에 다음 문이 :

alert("the new date and time is " + $("#Label1").data("dateAndTime")); 

내가 원래 표시 될 저장된 값을 기대를하지만, 내가 대신 "정의되지 않은"얻을. 내가 기대하는 것을 얻어야합니까, 아니면 .data를 이해하지 못합니까?

+0

완전한 코드 예제를 게시 할 수 있습니까? 특히 포스트 백 부분. – j08691

+0

페이지가 다시로드되면 포스트 백이 페이지를 다시로드하므로 DOM이 변경되므로 해당 값을 얻지 못할 것입니다. – ocanal

+0

@ j08691, 더 많은 코드를 추가했습니다. 나는 포스트 백에 대해 이해하지만 .data에 대한 전체적인 생각은 데이터를 두 번째로 가져올 필요없이 다시 사용할 수 있도록 유지하는 것이라고 생각했습니다. – Scott

답변

2

포스트 팩을 수행하면 페이지가 새로 고쳐지고 모든 데이터가 손실됩니다. 완전히 새로운 문서를 얻을 수 있습니다.

쿠키 또는 세션 저장소에 데이터를 저장하는 것이 좋습니다.

+0

예상대로 작동합니다 (http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_misc_data_set_get). 나는 그것을 얻지 못한다 ... – Scott

관련 문제