ホームページ >ウェブフロントエンド >jsチュートリアル >Vanilla JavaScript イベント委任は、最適なパフォーマンスを実現するための jQuery のアプローチとどのように比較されますか?

Vanilla JavaScript イベント委任は、最適なパフォーマンスを実現するための jQuery のアプローチとどのように比較されますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 10:05:15182ブラウズ

How Does Vanilla JavaScript Event Delegation Compare to jQuery's Approach for Optimal Performance?

最適なパフォーマンスを実現するバニラ JavaScript でのイベント委任

jQuery 構文の再確認

jQuery では、次のコードを使用してイベント委任を実現できます。

$('#main').on('click', '.focused', function() {
  settingsPanel();
});

バニラへの翻訳JavaScript

バニラ JavaScript でのイベント委任の利用は、addEventListener を通じて実現できます。ただし、効率を高めるためにアプローチを最適化することが重要です。次の代替案を検討してください。

document.querySelector('#main').addEventListener('click', (e) => {
  if (e.target.closest('.focused')) {
    settingsPanel();
  }
});

closest() を利用することで、クリックされた要素またはその先祖のいずれかが .focused セレクターと一致するかどうかを確認します。これにより、子要素を非効率的に反復する必要がなくなります。

コードをコンパクトに保つ​​

コードのコンパクトさを高めるために、メイン ロジックを初期の return ステートメントの下に配置できます。

document.querySelector('#main').addEventListener('click', (e) => {
  if (!e.target.closest('.focused')) {
    return;
  }

  // Code of settingsPanel here
});

実装例

次のコードは、アプローチ:

document.querySelector('#outer').addEventListener('click', (e) => {
  if (!e.target.closest('#inner')) {
    return;
  }
  console.log('vanilla');
});

$('#outer').on('click', '#inner', () => {
  console.log('jQuery');
});

バニラ JavaScript と jQuery イベント ハンドラーの両方で要素を操作するときの出力を観察します。

以上がVanilla JavaScript イベント委任は、最適なパフォーマンスを実現するための jQuery のアプローチとどのように比較されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。