1. ホーム
  2. javascript

[解決済み] 動的にアタッチされるイベントリスナーが存在するかどうかを確認するには?

2022-04-24 15:28:15

質問

私の問題は、動的にアタッチされたイベントリスナーが存在するかどうかを確認することは可能でしょうか?または、DOMの"onclick"(?)プロパティの状態をチェックするにはどうしたらよいでしょうか?私は解決策のためにスタックオーバーフローのようにインターネットを検索しましたが、うまくいきません。以下は私のhtmlです。

<a id="link1" onclick="linkclick(event)"> link 1 </a>
<a id="link2"> link 2 </a> <!-- without inline onclick handler -->

次に、Javascriptで、2番目のリンクに動的に作成されたイベントリスナーを付けます。

document.getElementById('link2').addEventListener('click', linkclick, false);

コードはうまく実行されますが、添付されたリスナーを検出する試みはすべて失敗します。

// test for #link2 - dynamically created eventlistener
alert(elem.onclick); // null
alert(elem.hasAttribute('onclick')); // false
alert(elem.click); // function click(){[native code]} // btw, what's this?

jsFiddleはこちら . 2のonclickを追加"をクリックしてから"[リンク2]"をクリックすると、イベントはうまく発火します。 が、"Test link 2"は常にfalseを報告します。 誰か助けてください。

どうすればいいですか?

動的にアタッチされるイベントリスナーが存在するかどうかを確認する方法がない。

イベントリスナーがアタッチされているかどうかを確認する唯一の方法は、このようにイベントリスナーをアタッチすることです。

elem.onclick = function () { console.log (1) }

次に、イベントリスナーが onclick を返すことで !!elem.onclick (など)。