function selectFromLast(target) {
// Определяем элемент, с которого начинается выделение
// Если до этого кликали на какой-то элемент, берём его
// Иначе берём первый элемент списка
var startElem = lastClickedLi || ul.children[0];
// Определяем, находится стартовый элемент до или после выбранного
// Для этого применяем битовую операцию И
// https://learn.javascript.ru/compare-document-position
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
if (isLastClickedBefore) {
// Если стартовый элемент расположен перед выбранным, идём от стартового вниз до выбранного
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
elem.classList.add('selected');
}
} else {
// Если стартовый элемент расположен после выбранного, идём от стартового вверх до выбранного
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
elem.classList.add('selected');
}
}
// Наконец, устанавливаем класс выбранному элементу
elem.classList.add('selected');
}
Для продвинутого читателя, который знает, что теги<script>
можно добавлять на страницу в любой момент при помощи самого javascript, заметим, что скрипты, добавленные таким образом, ведут себя так же, как async. То есть, выполняются как только загрузятся, без сохранения относительного порядка.
Если же нужно сохранить порядок выполнения, то есть добавить несколько скриптов, которые выполнятся строго один за другим, то используется свойство script.async = false.
вдруг люди придумали что-то более продуктивное?Так а что может быть продуктивного в IE8? MutationObserver там не поддерживается, поэтому остаётся только setInterval().
var array = [];
function load_reservation(stock, year, month, callback) {
$.post("'.Url::to(['site/ajax-load-reservation']).'", {"stock": stock, "year": year, "month": month}, function (data) {
if (data.result == 1) {
callback(data.array);
}
else callback([]);
}, "json");
}
$(".book").each(function () {
var id = $(this).attr("data-stock_id");
load_reservation(id, null, null, function (result) {
array[id] = result;
console.log(array[id]);
});
});
Есть предположение, что БД после долго не использования закрывает соединение.
npm i -g webpack