Executar apenas uma vez por meio de gatilho de evento (JavaScript)

この記事は約3分で読めます。
スポンサーリンク

Coisas que eu quero fazer

Ao usar JavaScript para disparar eventos e executar ações, você normalmente usa `addEventListener`, mas às vezes você só quer que ele seja executado uma vez (por exemplo, quando um evento estiver pronto para ser disparado).

Usar `removeEventListener` funcionaria, mas é problemático porque você precisa configurar exatamente o mesmo ouvinte. (Eu errei durante a manutenção.)

Este artigo explica como executar uma ação apenas uma vez sem usar o removeEventListener.

スポンサーリンク

implementação

Normalmente, o método addEventListener seria escrito da seguinte forma.

element.addEventListener(event, callback);
// example
// element.addEventListener("click", ()=>{console.log("clicked")});

Com essa implementação, a função de retorno de chamada será executada sempre que um evento ocorrer.

Modificaremos essa implementação da seguinte forma:

element.addEventListener(event, callback, {once: true});

Se o terceiro argumento antes da modificação fosse verdadeiro

Será da seguinte forma:

Antes da revisão

element.addEventListener(event, callback, true);

Após correção

element.addEventListener(event, callback, {once: true, capture :true});
スポンサーリンク

Resultado

O ouvinte definido com addEventListener agora será executado apenas uma vez.

スポンサーリンク

Sites que utilizei como referência

EventTarget: addEventListener() メソッド - Web API | MDN
addEventListener() は EventTarget インターフェイスのメソッドで、ターゲットに特定のイベントが配信されるたびに呼び出される関数を設定します。

コメント

タイトルとURLをコピーしました