首頁 > web前端 > js教程 > Vanilla JavaScript 事件委託與 jQuery 的最佳效能方法相比如何?

Vanilla JavaScript 事件委託與 jQuery 的最佳效能方法相比如何?

Barbara Streisand
發布: 2024-11-26 10:05:15
原創
235 人瀏覽過

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

Vanilla 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選擇器匹配。這消除了低效迭代子元素的需要。

保持程式碼緊湊

為了增強程式碼緊湊性,主要邏輯可以放在早期回傳語句的下面:

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板