0
私はオプションのリストを持っています。 1つのオプションをクリックすると、クリックされたリンクのdata-id値でlocalStorage値を更新し、Ajax呼び出しによって更新されたlocalStorage値を送信したいが、localStorage値が実際に更新されないという問題がある。ウィンドウが更新されます。localStorage変数を更新してAjaxに送信する方法
HTML
<div class="phonechoice" data-id="1">Option 1</div>
<div class="phonechoice" data-id="2">Option 2</div>
jQueryの
//Update localStorage variable on click and send to ajax call
$(document).on("click", '.phonechoice', function(){
var mcid=$(this).data("id");
localStorage.mastercaseid = mcid; // CHANGE LOCALSTORAGE VALUE
// location.reload(); //WANT TO STOP THIS RELOAD
getresult(url_pullrecords); //execute ajax call
});
AJAX呼び出し
function getresult(url_pullrecords) {
$.ajax
({
context: this,
crossDomain: true,
url: url_pullrecords,
type: "GET",
data: {mcid:localStorage.mastercaseid},
//THIS VALUE ABOVE DOESN'T GET UPDATED UNLESS WINDOW IS REFRESHED
beforeSend: function(){
},
success: function(data){
$(".btnholder").before(data);
}
});
}
Clickハンドラで唯一の更新が行われたように見えるので、実際には意味をなさない。あなたはどうやってこれを確認していますか?なぜ適切なlocalStorage APIメソッドを使用していないのですか? – charlietfl
localStorageが更新された後に変数を出力すると、ウィンドウを更新しない限り、新しい値が表示されません。 ajaxコールはまだ古い値を取得しています。 – obreezy
それを別の引数として関数に渡すのはなぜですか? 'location.reload()'のコメントを外すと、ページがリロードされてからajaxが呼び出されます。 – charlietfl