const $filter = $('.js-filter').change(function() {
const selected = $('.dfth__check:checked', this)
.closest('.dfth__item')
.find('.dfth__label')
.get()
.map(n => n.innerText)
.join(', ');
$('.js-type-result', this).text(selected || дефолтное_значение);
});
$('.dfth__reset').click(function() {
$filter.find('.dfth__check').prop('checked', false);
$filter.trigger('change');
});
methods: {
setDeleteTimeout(message) {
message.timeout = setTimeout(this.удалитьСообщение, 5000, message);
},
delDeleteTimeout(message) {
clearTimeout(message.timeout);
message.timeout = null;
},
...
<div
v-for="n in messages"
@mouseenter="delDeleteTimeout(n)"
@mouseleave="setDeleteTimeout(n)"
...
document.querySelectorAll('.col').forEach(n => {
n.querySelectorAll('a').forEach((m, i) => m.classList.toggle('d-none', !!i));
});
document.querySelectorAll('.col a').forEach(n => {
n.classList.toggle('d-none', !!n.previousElementSibling);
});
$('#cityFilter').on('input', function() {
const value = this.value.toLowerCase();
$('#city-list .city')
.hide()
.filter((i, n) => $(n).text().toLowerCase().includes(value))
.show();
$('#city-list .state')
.hide()
.filter((i, n) => $(n).nextUntil('.state').is(':visible'))
.show();
});
key={elem * Math.random()}
при добавлении новых 20 в массив перерисовываются ещё и старые 300
const SHOW_INITIAL = 2;
const SHOW_MORE = 3;
const $button = $('.btn-search-more');
const $items = $('.catalog-list__items-top').hide();
showItems(SHOW_INITIAL);
$button.click(() => showItems(SHOW_MORE));
function showItems(count) {
const $hidden = $items.filter(':hidden');
$hidden.slice(0, count).show();
$button.toggle($hidden.length > count);
}
const point = { latitude: lat, longtitude: lon };
const closest = arr.reduce((closest, n) => {
const d = sphericalDistance(point, n);
return d < closest[1] ? [ n, d ] : closest;
}, [ null, Infinity ])[0];
function sphericalDistance(p1, p2) {
// https://en.wikipedia.org/wiki/Great-circle_distance
}
def nested_to_plain(obj):
result = {}
for key, val in obj.items():
if type(val) == dict:
result.update({ key + '.' + k: v for k, v in nested_to_plain(val).items() })
else:
result[key] = val
return result
document.querySelector('.calendar-days').addEventListener('click', e => {
if (e.target.classList.contains('calendar-day-hover')) {
currDate = new Date(curr_year.value, curr_month.value, e.target.innerText);
document.querySelector('.heading').innerText = currDate.toLocaleDateString('ru-RU');
e.currentTarget.querySelector('.curr-date')?.classList.remove('curr-date');
e.target.classList.add('curr-date');
}
});