1. ホーム
  2. javascript

[解決済み] ある要素にイベントリスナーがいるかどうか確認する。jQueryがない [重複].

2022-11-09 02:02:52

質問

以下のコードのようにインライン関数を使用する場合、要素にイベントリスナーがあるかどうかを確認するにはどうしたらよいでしょうか。というのも、関数を呼び出してイベントリスナーを追加する関数があるのですが、イベントリスナーが重複してしまい、関数が2回トリガーされてしまうからです。すでに存在するイベントリスナーを追加しないようにするには、どのようにそれをチェックすることができますか?

for (var a = 0;a<formFieldInput.length;a++) {
    if(formFieldInput[a].hasAttribute("name") && formFieldInput[a].attributes.title.value !== "Valid Until") {
        formFieldInput[a].addEventListener("click",function(event) {
            toggleFieldList(event,"show");
        });
    }

どのように解決するのですか?

これを実現するJavaScriptの関数はありません。ただし、ブーリアン値を true をリスナー追加時に設定し false とします。そして、重複するイベントリスナーを追加する前に、このブール値に対してチェックを行います。

重複する可能性のある 動的にアタッチされるイベントリスナーが存在するかどうかを確認する方法は?