⊗jsPmOENEH 430 of 505 menu

JavaScriptте жаңы элементтерге ишкерлерди коюу

Бизде ul тизмеси жана баскыч бар дейли:

<ul> <li>элемент</li> <li>элемент</li> <li>элемент</li> <li>элемент</li> <li>элемент</li> </ul> <button>кошуу</button>

Элементтерди тиешелүү өзгөрмөлөргө алалы:

let button = document.querySelector('button'); let list = document.querySelector('ul'); let items = list.querySelectorAll('li');

Ар бир li боюнча чыкылдатуунун натыйжасында анын аягына үндөү белги кошулсун:

for (let item of items) { item.addEventListener('click', function() { this.textContent = this.textContent + '!'; }); }

Эми баскычты басуу менен тизменин аягына жаңы li кошулсун:

button.addEventListener('click', function() { let item = document.createElement('li'); item.textContent = 'элемент'; list.appendChild(item); });

Бирок, биз маселеге туш болобуз: жаңы кошулган li боюнча чыкылдатуу анын аягына үндөү белги кошпойт. Себеби, биз башында бар болгон li элементтерине гана чыкылдатуу ишкерчин кошобуз, бирок жаңыларына эмес.

Маселени жаңы li үчүн чыкылдатуу ишкерчин кошуп чечебиз:

button.addEventListener('click', function() { let item = document.createElement('li'); item.textContent = 'элемент'; item.addEventListener('click', function() { // чыкылдатуу ишкерчи this.textContent = this.textContent + '!'; }); list.appendChild(item); });

Бирок, азыр ишкерчи-функциянын коду эки жерде кайталанып турат - башында бар болгон li үчүн жана жаңылар үчүн. Муну аны жеке функцияга чыгарып чечебиз:

function handler() { this.textContent = this.textContent + '!'; }

Коддун кайталанышын болтурбоо үчүн биздин функциябызды колдонолу:

for (let item of items) { item.addEventListener('click', handler); } button.addEventListener('click', function() { let item = document.createElement('li'); item.textContent = 'элемент'; item.addEventListener('click', handler); list.appendChild(item); });

Маселе чынында чечилди жана биз ишкерчи-функциянын коду кайталануудан аман калдык. Бирок, окуя ишкерчилерин кошуу бизге эки жерде керек болуп калууда: бар болгон li үчүн циклде жана баскычка чыкылдатууда. Кийинки сабакта бул ыңгайсыздыктан кантип кутулууну карайбыз.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу