首頁  >  文章  >  web前端  >  jquery中on方法的優點是什麼

jquery中on方法的優點是什麼

青灯夜游
青灯夜游原創
2022-09-09 18:08:171847瀏覽

jquery中on方法的優點:1、on()方法可以綁定動態加入頁面元素的事件,其新增的事件處理程序適用於目前及未來的元素;2、on()方法一次效能為元素添加一個或多個事件處理程序,可以提升效率。

jquery中on方法的優點是什麼

本教學操作環境:windows7系統、jquery3.6.1版本、Dell G3電腦。

on() 方法在被選元素及子元素上新增一個或多個事件處理程序。

自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。這個方法為 API 帶來很多便利,我們推薦使用該方法,它簡化了 jQuery 程式碼庫。

對於單一元素註冊事件分開寫比較麻煩

$("p").click(function(){
  $(this).hide();
});
$("p").mouseenter(function(){
  $(this).css("background","blue");
});

所以可以透過on來一次註冊多個事件

$("p").on({
  click:function(){
    $(this).hide();
  },
  mouseenter:function(){
    $(this).css("background","blue");
  }
});
 
//还可以合并
$("div").on( "mouseenter mouseleave", function(){
    $(this).toggleclass( "current");
})

jQuery綁定事件的方法有幾種,建議使用.on()方法綁定,原因有2點:

1、on()方法可以綁定動態加入到頁面元素的事件

例如動態加入到頁面的DOM元素,用.on()方法綁定的事件不需要關心註冊該事件的元素何時被加入進來,也不需要重複綁定。有的同學可能習慣於用.bind()、.live()或.delegate(),查看源碼就會發現,它們實際上調用的都是.on()方法,並且.live()方法在jQuery1. 9版本已經被移除。

使用 on() 方法新增的事件處理程序適用於目前及未來的元素(例如由腳本建立的新元素)。

bind:

function(
 types, data, fn ) {
  return this.on(
 types, null,
 data, fn );
},

live:

function(
 types, data, fn ) {
  jQuery(
this.context
 ).on( types, this.selector,
 data, fn );
  return this;
},

delegate:

function(
 selector, types, data, fn ) {
  return this.on(
 types, selector, data, fn );
}

2、on()方法一次效能為元素增加一個或多個事件處理程序,可以提升效率

很多文章都提到了利用事件冒泡和代理來提升事件綁定的效率,大多都沒列出具體的差別,所以為了求證,我做一個小測試。

假設頁面新增了5000個li,用chrome開發者工具Profiles測試頁面載入時間。

  • 普通綁定(姑且這麼稱呼它)

$("li").click(function(){
  console.log(this)
});
$(document).on("click","li",function(){
  console.log(this)
})

綁定過程的執行時間

  • 普通綁定相當於在li上面分別註冊click事件,記憶體佔用約4.2M,綁定時間約72ms。

  • .on()綁定利用事件代理,只在document上註冊了一個click事件,記憶體佔用約2.2M,綁定時間約為1ms。

【推薦學習:jQuery影片教學web前端影片

以上是jquery中on方法的優點是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn