Показать сообщение отдельно
  #16 (permalink)  
Старый 19.08.2023, 22:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Ubivectel,
как вариант...
let touch_yy, touch_xx;
document.addEventListener("touchstart", (event) => {
    let target = event.target;
    if (target = target.closest('.KIDE_quote')) {
        touch_yy = event.changedTouches[event.changedTouches.length - 1].clientY;
        touch_xx = event.changedTouches[event.changedTouches.length - 1].clientX;
    }
})
document.addEventListener("touchend", (event) => {
    let target = event.target;

    if (target = target.closest('.KIDE_quote')) {
        let swap = (Math.abs(touch_yy - event.changedTouches[event.changedTouches.length - 1].clientY) > 30 || Math.abs(touch_xx - event.changedTouches[event.changedTouches.length - 1].clientX) > 30)
        if (swap) {
            target = target.closest('.KIDE_msg_top');
            target.classList.add('swiped');
            setTimeout(function () {
                target.classList.remove('swiped');
            }, 300);
            let clon = target.cloneNode(true); // Делаем копию узла с потомками
            clon.querySelectorAll(".KIDE_quote").forEach(el => el.remove()); // Удаляем из копии все span.KIDE_msg
            let text = clon.textContent.trim(); // Берем текст из клона
            if (text.length > 60) text = text.slice(0, 60) + '...'
            kide.insertSmile(`[QUOTE]${text}[/QUOTE]\n`); // ставляем текст в инпут
        }
    }
})
Ответить с цитированием