⊗jsPmDmLHU 362 of 505 menu

Desvinculando manipuladores de eventos em loop em JavaScript

Suponha que agora temos não um elemento, mas vários. Por exemplo, vários parágrafos:

<p>text1</p> <p>text2</p> <p>text3</p>

Vamos vincular a função func a cada um desses parágrafos como um manipulador de clique:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); }

Agora, vamos modificar o código para que cada parágrafo reaja apenas ao primeiro clique nele. Para isso, ao clicar em um parágrafo, desvincularemos o manipulador associado a ele. Dessa forma, o desvinculamento será específico para esse parágrafo, sem afetar os demais.

Como você já sabe, o elemento no qual o evento ocorreu pode ser obtido na função manipuladora através de this. Isso significa que precisamos executar o desvinculamento do manipulador de this, assim:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // desvinculamos o manipulador }

Existem parágrafos. Ao clicar em qualquer um dos parágrafos, adicione um ponto de exclamação ao final dele. Faça com que esta adição ocorra apenas no primeiro clique.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar