Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вообще не шарю - Нужно просто, чтобы два кода работали вместе. (https://javascript.ru/forum/misc/78875-voobshhe-ne-sharyu-nuzhno-prosto-chtoby-dva-koda-rabotali-vmeste.html)

DENERIK 16.11.2019 18:35

Вообще не шарю - Нужно просто, чтобы два кода работали вместе.
 
Есть два кода, которые работают в отдельности, но ни вместе. И это очень печально :(

Первый:

/* Копирование содержимого ячеек, по клику */

(function(){
let tds = document.querySelectorAll('span, div.a19')
let tds_length = tds.length
for(let i = 0; i < tds_length; i++){
tds[i].addEventListener('click', copyFanc)
}

function copyFanc(event){
let element = event.target || event.srcElement;
let text = element.innerText
navigator.clipboard.writeText(text).then(function() {
console.log('Текст скопирован!')
}, function(err) {
console.error('Ошибка копирования: ', err)
});
}
})()

Второй:

/* Копирование скрытого текста, по клику */

initAutoCopy( document.querySelectorAll('.copy') );

function initAutoCopy(elems){
    let input = document.createElement('input');
    input.style.display = "none";
    document.body.appendChild(input);
 
    for( let i = 0; i < elems.length; i++ ){
        elems[i].addEventListener('click', function(){
            input.style.display = "block";
            input.value = this.dataset.copy;
            input.select();
 
            document.execCommand('copy');
            input.style.display = "none";
        }); 
    }
}

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Ещё есть код, который я не могу продублировать, для других классов.

Если скопировать этот код и заменить в нём классы, то дубль работать не будет. (Или оба не будут, не помню уже).

/* Скрытия / Показ блока */

let a18 = document.querySelectorAll('.a18');
let a17 = document.querySelectorAll('.a17');

for( let i = 0; i < a18.length; i++ ){
  a18[i].addEventListener('click', function(){
    a17[i].classList.toggle('visi');
  });
}

Aetae 16.11.2019 21:31

Если элементы одни и те же - каким образом вы хотите чтобы они "работали вместе"? Оба пишут буфер обмена текст, первый - один, второй - другой, кто последний записал - тот и молодец.

Во втором случае всё должно работать при смене классов, хоть это и говнокод: элементов новых классов должно быть обязательно равное количество, чтоб порядковый номер в документе одного точно соответствовал порядковому номеру второго.

DENERIK 17.11.2019 14:30

Так всё-же, что изменить в коде?

Или предлагаете мне JavaScript выучить, чтобы такую банальную проблему решить?

Aetae 17.11.2019 15:41

На вопрос то ответьте: каким образом вы хотите чтобы они "работали вместе"?
В буфер должно класться сложение обоих строк? В каком порядке?
Или клики происходят по разным элементам, просто один вложен в другой?

DENERIK 17.11.2019 17:34

Спасибо, я понял что не учёл - span первого кода, имел класс второго.
Вот они и конфликтовали.

А почему третий код не работал, я сам не понял.
Давно было.
А сейчас воспроизвёл. И всё работает :blink:

Спасибо ещё раз!


Часовой пояс GMT +3, время: 07:29.