最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery中.on()參數(shù)的實(shí)現(xiàn)示例

 更新時間:2026年06月17日 09:45:20   作者:學(xué)以智用  
.on()是jQuery通用事件綁定方法,支持普通綁定、事件委托、傳參、命名空間等,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

.on() 是 jQuery 通用事件綁定方法,支持普通綁定、事件委托、傳參、命名空間等,下面分標(biāo)準(zhǔn)語法、參數(shù)、重載形式、示例、解綁逐一說明。

一、完整語法格式

1. 基礎(chǔ)通用語法

$(selector).on( events [, selector ] [, data ] , handler );

參數(shù)按順序:事件名、子選擇器、自定義數(shù)據(jù)、回調(diào)函數(shù),后三個都是可選。

二、逐個參數(shù)詳解

1.events(必選)

字符串,指定要綁定的事件名稱,多個事件用空格分隔

  • 支持原生事件:click、dblclick、mouseover、mouseout、keydown、change、submit 等
  • 支持自定義事件
  • 支持事件命名空間(用于精準(zhǔn)解綁)

示例:

// 單個事件
$(".box").on("click", function(){});

// 多個事件(空格分隔)
$(".box").on("click mouseover", function(){});

// 事件 + 命名空間(click.my)
$(".box").on("click.my", function(){});

2.selector(可選,核心:事件委托)

字符串,CSS 選擇器。

  • 不填:普通綁定,僅對當(dāng)前已存在的元素生效
  • 填寫:開啟事件委托,綁定在父元素,兼容動態(tài)新增的子元素

原理

利用事件冒泡:事件實(shí)際綁定在父元素,觸發(fā)時判斷來源是否匹配該選擇器。

示例

<div id="parent">
  <!-- 靜態(tài)/動態(tài) button 都能觸發(fā) -->
</div>
// 父元素 #parent 綁定,委托給子元素 button
$("#parent").on("click", "button", function(){
  console.log("按鈕被點(diǎn)擊");
});

// 后續(xù)動態(tài)創(chuàng)建的按鈕依然有效
$("#parent").append("<button>動態(tài)按鈕</button>");

關(guān)鍵點(diǎn):委托寫法是 父元素.on(事件, 子選擇器, 回調(diào))

3.data(可選,事件傳參)

任意類型(字符串/對象/數(shù)組),綁定事件時預(yù)先傳入數(shù)據(jù),在回調(diào)中通過 event.data 獲取。

語法:

.on(events, selector, data, handler)
// 無委托時:.on(events, data, handler)

示例:

// 傳對象參數(shù)
let msg = { name: "測試", id: 1001 };

$(".btn").on("click", msg, function(e){
  console.log(e.data.name);  // 測試
  console.log(e.data.id);    // 1001
});

4.handler(必選,回調(diào)函數(shù))

事件觸發(fā)時執(zhí)行的函數(shù)。

  • 函數(shù)第一個參數(shù):事件對象 event
  • this 指向觸發(fā)事件的 DOM 原生元素(不是 jQuery 對象)
  • 可通過 $(this) 轉(zhuǎn)為 jQuery 對象使用

示例:

$(".btn").on("click", function(e){
  console.log(e.type); // 事件類型:click
  $(this).css("color","red"); // 當(dāng)前點(diǎn)擊元素變色
});

三、四種常用重載形式(按使用場景分類)

形式1:最簡綁定(無委托、無傳參)

適用于靜態(tài)元素

// 語法:on( events, handler )
$(".btn").on("click", function(){});

形式2:帶傳參(無委托)

// 語法:on( events, data, handler )
$(".btn").on("click", {tip:"提示"}, function(e){});

形式3:事件委托(最常用,動態(tài)元素必備)

// 語法:on( events, selector, handler )
$("#parent").on("click", ".child", function(){});

形式4:委托 + 傳參(完整全參數(shù))

// 語法:on( events, selector, data, handler )
$("#parent").on("click", ".child", {id:1}, function(e){});

四、高級用法

1. 事件命名空間(精準(zhǔn)解綁)

給事件加命名空間,解綁時只刪指定命名空間事件,不影響其他同類型事件。

// 綁定命名空間 click.a
$(".btn").on("click.a", function(){ alert("A事件"); });
$(".btn").on("click.b", function(){ alert("B事件"); });

// 只解綁 click.a,click.b 保留
$(".btn").off("click.a");

2. 綁定自定義事件

可以手動觸發(fā)自定義事件:

// 綁定自定義事件 myEvent
$(".box").on("myEvent", function(){
  alert("自定義事件觸發(fā)");
});

// 手動觸發(fā)
$(".box").trigger("myEvent");

3. 一次性 事件(執(zhí)行一次后自動解綁)

搭配 .one(),語法和 .on() 一致,只觸發(fā) 1 次

$(".btn").one("click", function(){
  alert("只彈一次");
});

五、配套:.off()解綁(和.on()成對使用)

1. 解綁所有事件

$(".btn").off();

2. 解綁指定事件

// 解綁所有 click 事件
$(".btn").off("click");

3. 解綁委托事件

// 解綁父元素上委托給 .child 的 click
$("#parent").off("click", ".child");

4. 解綁命名空間事件

$(".btn").off("click.a");

六、關(guān)鍵總結(jié) & 避坑

  • 參數(shù)順序不能亂 固定順序:事件名 → 子選擇器(委托) → 自定義數(shù)據(jù) → 回調(diào)
  • 動態(tài) DOM 必用委托 頁面后添加的元素,直接綁 $(".動態(tài)元素").on() 會失效,必須綁父元素 + 子選擇器。
  • this 指向 回調(diào)里 this 是原生 DOM,要用 jQuery 方法必須寫 $(this)。
  • 多事件綁定 多個事件空格隔開,共享同一個回調(diào)。
  • 傳參取值 外部傳入的數(shù)據(jù),統(tǒng)一從 event.data 獲取。

七、速查卡片

寫法適用場景
.on("click", fn)靜態(tài)元素單擊
.on("click mouseover", fn)多個事件共用回調(diào)
父.on("click", "子", fn)動態(tài)元素、事件委托(項(xiàng)目高頻)
.on("click", data, fn)事件需要外部傳參
.on("click.xxx", fn)需要精準(zhǔn)解綁,使用命名空間

到此這篇關(guān)于jQuery中.on()參數(shù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)jQuery .on()參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

扎鲁特旗| 上林县| 肇源县| 甘孜| 余江县| 剑阁县| 云梦县| 河源市| 都匀市| 五原县| 海淀区| 乌兰察布市| 成安县| 通渭县| 太白县| 水城县| 资溪县| 阿拉善右旗| 琼海市| 常宁市| 红安县| 鸡东县| 伽师县| 文昌市| 上饶县| 镇坪县| 光山县| 桦甸市| 雅安市| 道真| 百色市| 平顺县| 汕尾市| 宽甸| 富蕴县| 彝良县| 喀喇沁旗| 博白县| 大荔县| 麻城市| 双柏县|