Два дня поиска по всем связанным сообщениям и без успеха. В моем коде используется локальное хранилище для хранения и получения статуса флажков при обновлении страницы. Это хорошо работает. С тех пор я расширил свой код, чтобы загрузить флажки в div из внешнего HTML-файла, и это вызывает проблемы с синхронизацией. Код для управления локальным хранилищем выполняется слишком быстро, чтобы флажки были загружены в div. Многочисленные усилия по отсрочке кода потерпели неудачу, мои последние усилия были «setTimeout», которые не имеют предполагаемого эффекта (см. Скрипку). Кстати, с достаточным количеством «предупреждений», останавливающих код, я доказал, что все это может сработать. Пожалуйста, помогите мне с лучшим путем. Очень признателен. https://jsfiddle.net/Ldn2awxb/Как обеспечить загрузку внешнего HTML до запуска скрипта
https://code.jquery.com/jquery-2.2.3.min.js
<div id="CountryCheckboxContainer">
<!-- Checkboxes below are loaded from external HTML file
<label><input type="checkbox" id="UN8" value="Albania" />Albania</label>
<label><input type="checkbox" id="UN40" value="Austria" />Austria</label>
<label><input type="checkbox" id="UN100" value="Bulgaria" />Bulgaria</label>
-->
</div>
// Load from external files
function LoadCheckboxes() {
setTimeout(function()
{ $("#CountryCheckboxContainer").load("https://c2ect538.caspio.com/dp.asp?AppKey=b8a94000b0cf30c15313458e91a0");
}, 500);
}
// set and get items
$(function() {
LoadCheckboxes();
var checkboxValues = JSON.parse(localStorage.getItem('checkboxValues')) || {},
$checkboxes = $("#CountryCheckboxContainer :checkbox");
$checkboxes.on("change", function() {
$checkboxes.each(function() {
checkboxValues[this.id] = this.checked;
});
localStorage.setItem("checkboxValues", JSON.stringify(checkboxValues));
});
// On page load
$.each(checkboxValues, function(key, value) {
$("#" + key).prop('checked', value);
});
});
Интересно, я не знал, что .load() имел обратный вызов. Тем не менее я изо всех сил пытаюсь заставить это работать для меня ... возможно, я не понимаю, где именно разместить код. – Silverburch
@Silverburch Я понял, что неверно истолковал часть вашего кода. Я обновил свой ответ на основе моего нового понимания. – Ouroborus
без проблем .. Я немного потянул за волосы! Дело в том, что я до сих пор не могу заставить это работать ... пытался в Firefox и IE (все последние). Работает ли это для вас? – Silverburch