ホームページ > ウェブフロントエンド > jsチュートリアル > DOM ノードの innerHTML を更新するときにイベント リスナーを保持するにはどうすればよいですか?

DOM ノードの innerHTML を更新するときにイベント リスナーを保持するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-16 12:00:17
オリジナル
782 人が閲覧しました

How Can I Preserve Event Listeners When Updating a DOM Node's innerHTML?

innerHTML 変更時のイベント リスナーの保持

DOM ノードの innerHTML に割り当てる場合、子孫要素にアタッチされているイベント リスナーはすべて破棄されます。既存のイベント処理を損なうことなく追加のコンテンツを追加することが目的の場合、これは問題となる可能性があります。

解決策: insertAdjacentHTML

.insertAdjacentHTML() メソッドは、 innerHTML を変更する際のイベント リスナー。 'afterend' を使用して挿入されたコンテンツの場所を指定すると、既存の DOM 構造やそのイベント ハンドラーに影響を与えることなくコンテンツを追加できます。

例:

検討次のコード スニペット:

var mydiv = document.getElementById('mydiv');

// Appending content using .innerHTML (destroys event listeners)
mydiv.innerHTML += '<p>New paragraph</p>';

// Appending content using .insertAdjacentHTML (preserves event listeners)
mydiv.insertAdjacentHTML('beforeend', '<p>New paragraph</p>');
ログイン後にコピー

この例では、 .insertAdjacentHTML() メソッドは、既存のイベント リスナーを保持しながら、新しい段落を #mydiv 要素に正常に追加します。このアプローチは、イベント処理を損なうことなく、コンテンツの変更が必要なあらゆる DOM 要素に適用できます。

以上がDOM ノードの innerHTML を更新するときにイベント リスナーを保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート