const getCard = button => $(`#card${button.id.match(/\d+/).pop()}`);
$('[id^="button"]').hover(
e => getCard(e.target).fadeIn(),
e => getCard(e.target).fadeOut(),
);
const $buttons = $('[id^=button]').hover(function(e) {
this.eq($buttons.index(e.target))[e.type === 'mouseenter' ? 'fadeIn' : 'fadeOut']();
}.bind($('[id^=card]')));
top += 2
, вы вовсе не с числом работаете. Меняйте имя переменной или выполняйте свой код в области видимости, отличной от глобальной или сделайте свой top свойством какого-нибудь объекта или... select.innerHTML = [
{ val: 69, optionText: 'hello, world!!', selectText: 'HELLO, WORLD!!' },
{ val: 187, optionText: 'fuck the world', selectText: 'FUCK THE WORLD' },
{ val: 666, optionText: 'fuck everything', selectText: 'FUCK EVERYTHING' },
].map(n => `
<option value="${n.val}" hidden>${n.selectText}</option>
<option value="${n.val}">${n.optionText}</option>
`).join('');
select.addEventListener('change', e => e.target.value = e.target.value);
const source = document.querySelector('.menu');
const target = document.querySelector('#parent');
for (const n of source.children) {
target.appendChild(n.cloneNode(true));
}
// или
source.querySelectorAll(':scope > *').forEach(n => {
target.insertAdjacentElement('beforeend', n.cloneNode(true));
});
// вложенные узлы копии добавляем в целевой элемент
target.append(...source.cloneNode(true).children);
// или, заменяем целевой элемент копией исходного
target.replaceWith(source.cloneNode(true));
target.innerHTML = source.innerHTML;
// или
target.outerHTML = source.outerHTML;
function getDate(day, year = new Date().getFullYear()) {
const date = new Date(year, 0, day);
return [
date.getDate(),
[
'январь', 'февраль', 'март', 'апрель', 'май', 'июнь',
'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'
][date.getMonth()],
[ 'вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб' ][date.getDay()],
].join(' ');
}
getDate(115, 2019) // "25 апрель чт"
const getDate = (day, year = new Date().getFullYear()) =>
new Date(year, 0, day).toLocaleString('ru-RU', {
day: 'numeric',
month: 'long',
weekday: 'short',
});
getDate(115, 2019) // "чт, 25 апреля"
.close-panel
, чтобы только что удалённый класс не добавлялся обратно (при обработке события в родительском элементе):$('.close-panel').on('click', function(e) {
e.stopPropagation();
$('.add-caption').removeClass('active');
});
.close-panel
, а в обработчике клика по .add
добавляйте или убирайте класс в зависимости от того, откуда пришло событие:$('.add').on('click', function(e) {
$('.add-caption').toggleClass('active', !$(e.target).hasClass('close-panel'));
});
const toDelX = new Set;
const toDelY = new Set;
X.forEach((n, i) => {
if (X2.includes(n) && Y2.includes(Y[i])) {
toDelX.add(n);
toDelY.add(Y[i]);
}
});
X2.splice(0, X2.length, ...X2.filter(n => !toDelX.has(n)));
Y2.splice(0, Y2.length, ...Y2.filter(n => !toDelY.has(n)));
let autoplayInterval = null;
function startAutoplay() {
if (!autoplayInterval) {
autoplayInterval = setInterval(plusSlide, 1000);
}
}
function stopAutoplay() {
clearInterval(autoplayInterval);
autoplayInterval = null;
}
function GetFaqAriaExpand(el) {
var fa = $(el).attr('aria-expanded');
...
var fa = GetFaqAriaExpand(this);
var fa = GetFaqAriaExpand.call(this);
$('.radio-input').parent('p').text((i, text) => text.replace('Какой-то ', ''))
$(this).parent('.card-header')
card-header
? - если нет, вызывайте parent без параметра. Или может быть класс есть, но элемент не родительский, а находится выше? - тогда замените parent на closest. Promise.all(rcs.map((residential, i) => {
return new Promise(resolve => {
setTimeout(() => {
...
resolve();
}, i * 50);
});
}).then(() => {
...
});
async setMarkers(rcs) {
for (const residential of rcs) {
await new Promise(resolve => setTimeout(resolve, 50));
...
}
...
}
const sort = {
str: (a, b) => a.text().localeCompare(b.text()),
num: (a, b) => parseInt(a.text(), 10) - parseInt(b.text(), 10),
};
<button class="sort" data-field="age" data-type="num">Сортировать по возрасту</button>
<button class="sort" data-field="name" data-type="str">Сортировать по имени</button>
$('.sort').click(function() {
const
$this = $(this),
data = $this.data(),
compare = sort[data.type],
field = `.${data.field}`,
order = +data.order || 1;
$('.block')
.sort((a, b) => order * compare($(field, a), $(field, b)))
.appendTo('.cont');
$this.data('order', order * -1);
});
$list.find('input').click(e => e.stopPropagation());
if (!$(e.target).is('input')) {
$list.hide();
}