document.addEventListener('click', function(e) {
if (!e.target.closest('.tileset-showitems')) {
tilesetShowListRemove();
}
});
- .active {
+ .active .box {
const containerSelector = '.tileset-showitems';
const buttonSelector = `${containerSelector} .tileset-showitems-trigger`;
const activeClass = 'active';
const closeAllExcept = container => document
.querySelectorAll(`${containerSelector}.${activeClass}`)
.forEach(n => n !== container && n.classList.remove(activeClass));
document.addEventListener('click', ({ target: t }) => {
const button = t.closest(buttonSelector);
const container = t.closest(containerSelector);
if (button) {
container.classList.toggle(activeClass);
}
closeAllExcept(container);
});
window.addEventListener('keydown', e => e.key === 'Escape' && closeAllExcept());
function imgResize(a) {
a.classList.toggle('imgresized');
}
var z = document.querySelectorAll('.imgresize-wrapper');
for(x = 0; x < z.length; x++) {
z[x].addEventListener('click', imgResize.bind(null, z[x])));
}
Изменить сам html код внутри div не представляется возможным, т.к. этот код генерируется динамически
Автомати­зиро­ванная
. Если и это не подойдет, то почитайте о word-break или hyphens . const cardSelector = '.post';
const buttonSelector = '.post > img';
const menuSelector = '.post-info';
const activeClass = 'active';
document.addEventListener('click', ({ target: t }) => {
if (!t.closest(menuSelector)) {
document.querySelectorAll(menuSelector).forEach(n => n.classList.remove(activeClass));
}
if (t.matches(buttonSelector)) {
t.closest(cardSelector).querySelector(menuSelector).classList.add(activeClass);
}
});