Ich habe eine Liste von Optionen. Wenn Sie auf eine Option klicken, möchte ich den localStorage-Wert mit dem Daten-ID-Wert des angeklickten Links aktualisieren und dann den aktualisierten localStorage-Wert über einen Ajax-Aufruf senden. Das Problem ist jedoch, dass der localStorage-Wert nicht aktualisiert wird Fenster wird aktualisiert. Gibt es einen Weg, um die localstorage Wert ohne eine vollständige Fenster refresh aktualisiert haben:Wie lokale Variable aktualisieren und an Ajax Anruf senden
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-Aufruf
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);
}
});
}
Wirklich nicht sinnvoll, da es scheint, dass das einzige Update im Click-Handler durchgeführt wird. Wie verifizierst du das alles? Und warum verwenden Sie nicht die richtigen localStorage-API-Methoden? – charlietfl
Ich drucke die Variable aus, nachdem das localStorage aktualisiert wurde und es zeigt den neuen Wert nicht an, wenn ich das Fenster nicht aktualisiere. Der Ajax-Aufruf erhält immer noch den älteren Wert. – obreezy
warum gibst du es nicht einfach als weiteres Argument in die Funktion? Auch wenn Sie 'location.reload()' auskommentieren, wird die Seite neu geladen, bevor der Ajax aufgerufen wird – charlietfl