Я использую этот код внутри плагина jQuery:
setInterval(function() {
localStorage.setItem("flag", "set");
var data = $(this).serializeArray();
console.log($(this));
$.each(data, function(i, obj) {
localStorage.setItem(obj.name, obj.value);
});
console.log('saved');
console.log(localStorage);
}, 5000);
if (localStorage.getItem("flag") == "set") {
alert("This form has saved data!");
var data = $(this).serializeArray();
console.log($(this));
$.each(data, function(i, obj) {
$("[name='" + obj.name +"']").val(localStorage.getItem(obj.name));
});
}
Как ни странно, первый $(this)
содержит форму (на которой запущен плагин), а второй $(this)
содержит DOMWindow
.Почему два $(this)
содержат разные вещи?Это потому, что первый находится внутри setInterval
?