ホームページ > ウェブフロントエンド > jsチュートリアル > DOM 属性が変更されたときにイベントをトリガーするにはどうすればよいですか?

DOM 属性が変更されたときにイベントをトリガーするにはどうすればよいですか?

DDD
リリース: 2024-10-26 06:40:02
オリジナル
357 人が閲覧しました

How to Trigger Events When DOM Attributes Change?

属性変更イベント処理

DOM 属性が変更されたときにイベントをアクティブにすることはできますか?たとえば、画像のソースやディビジョンの内部 HTML が変更された場合、

ミューテーション イベントがこの問題の解決策を提供します。これらのイベントに対するブラウザーのサポートは限られていますが、属性の変更を監視する方法を提供します。

具体的には、Mutation Events の代わりに MutationObserver インターフェイスを利用できます。 MutationObserver は、属性の変更を含む DOM の変更を監視するための、より標準化された信頼性の高い方法を提供します。

属性の変更時に MutationObserver を使用してカスタム イベントをトリガーする方法は次のとおりです。

const observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    if (mutation.type === 'attributes') {
      const element = mutation.target;
      const attributeName = mutation.attributeName;
      const oldValue = mutation.oldValue;
      const newValue = mutation.newValue;

      // Trigger custom event with relevant information
      element.dispatchEvent(new CustomEvent('attributeChanged', {
        detail: {
          attributeName,
          oldValue,
          newValue
        }
      }));
    }
  });
});

// Observe the DOM element for attribute changes
observer.observe(document.querySelector('#myElement'), { attributes: true });
ログイン後にコピー

使用方法MutationObserver を使用すると、属性の変更を効果的に追跡し、それに応じてカスタム イベントを開始できるため、動的な DOM 変更に対応できます。

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

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