209 of 264 menu

Метод addEventListener

Методът addEventListener позволява да се задават върху елемент манипулатори на събития. С негова помощ може да се укаже, например, какво да се прави при кликване върху бутон или какво да се прави при въвеждане на текст в текстово поле. В първия параметър се посочва типът на предаваното събитие, във втория - функция, която ще се изпълнява след събитието, посочено в първия параметър. В третия незадължителен параметър се предават характеристики на обекта (once, capture, passive) или параметърът useCapture.

Синтаксис

елемент.addEventListener('тип на събитието', функция, [характеристики на обекта]); или елемент.addEventListener('тип на събитието', функция, [useCapture]);

Пример

Нека направим така, че при кликване върху бутон да се извежда съобщение:

<input type="button" id="button" value="click me"> let button = document.querySelector('#button'); button.addEventListener('click', function() { alert('message'); });

:

Пример

Нека напишем код, така че при загуба на фокус в инпут да се извежда съобщение с текста от този инпут:

<input id="input" value="text"> let input = document.querySelector('#input'); input.addEventListener('blur', function() { alert(this.value); });

:

Пример

Нека направим така, че при кликване върху бутон съобщението да се извежда в конзолата само веднъж. За целта ще използваме втория параметър:

<input type="button" id="button" value="click me"> let button = document.querySelector('#button'); button.addEventListener('click', function() { console.log('message'); }, { once: true } );

Пример

Параметърът passive забранява извикването на метода event.preventDefault при обработка на събитието. Нека към предишния пример приложим метода event.preventDefault, а също така да посочим в параметъра passive стойност true:

<input type="button" id="button" value="click me"> let button = document.querySelector('#button'); button.addEventListener('click', function(event) { event.preventDefault(); console.log('No message'); }, { passive: true } );

След изпълнение на кода ще видим следните съобщения:

'No message'; 'Unable to preventDefault inside passive event listener invocation.'

Пример

Параметърът useCapture със стойност true показва възникването на събития от вътрешния елемент към външния, при стойност false - от външния към вътрешния елемент. При предаване на параметъра useCapture името му се пропуска и се записва просто true или false. Нека видим как възникват събитията в родителския и дъщерния елемент при кликване върху тях:

<div id="parent">Parent <p id="child">Child</p> </div> #parent{ width: 60px; padding: 10px; border: 1px solid red; text-align: center; } #child{ width: 60px; marging-right: 40px; border: 1px solid blue; text-align: center; } let parent = document.querySelector('#parent'); let child = document.querySelector('#parent'); parent.addEventListener('click', () => alert('parent'), true ); child.addEventListener('click', () => alert('child'), true );

:

Вижте също

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне