欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery事件委托代碼實(shí)踐詳解

 更新時(shí)間:2019年06月21日 08:25:16   作者:wishyouhappy  
這篇文章主要介紹了jQuery事件委托代碼實(shí)踐詳解, 事件委托是利用事件冒泡,只指定一個(gè)事件處理程序來(lái)管理某一類(lèi)型的所有事件。,需要的朋友可以參考下

javascript的事件模型,采用"冒泡"模式,子元素的事件會(huì)逐級(jí)向上"冒泡",成為父元素的事件。

在需要為較多的元素綁定事件時(shí)應(yīng)該使用事件委托 event delegation

javascript事件傳播

html如下:

<body>
<table>
<tr><td id="targetTd"></td><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
</table>
</body>

添加腳本:

targetTd.onclick = function (event) {
console.log("Td is clicked");
};
document.body.onclick = function (event) {
console.log("Body is clicked");
};

點(diǎn)擊td targetTd,結(jié)果如下:

Td is clicked
Body is clicked

使用stopPropagation可以阻止事件的傳播(ie下使用cancelBubble)

eg:

targetTd.onclick = function (event) {
console.log("Td is clicked");
event.stopPropagation();
};
document.body.onclick = function (event) {
console.log("Body is clicked");
};

點(diǎn)擊td targetTd,結(jié)果如下:

Td is clicked 

js事件委托

如果我們想給上面的table中所有的td添加點(diǎn)擊事件,可以通過(guò)循環(huán)綁定,或者是采用事件委托方式,如下:

document.body.onclick = function (event) {
if(event.target.tagName === "TD"){
console.log(event.target.tagName+" is clicked");
}
};

jQuery事件委托

jquery 事件綁定 on 方法定義如下:

.on( events [, selector ] [, data ], handler(eventObject) )

取消事件的綁定可以使用off

$(document).off("click", "td");

給td綁定點(diǎn)擊事件可以使用:

$("td").on("click", function(e){
console.log(e.target.tagName+" is clicked");
});

加入selector參數(shù),使用事件委托

$("table").on("click", "td", function(){
console.log(e.target.tagName+" ");
});

或者:

$(document).on("click", "td", function(){
console.log(e.target.tagName+" ");
});

此時(shí)事件冒泡到document或者table時(shí)會(huì)監(jiān)測(cè)是否是td selector,匹配時(shí)會(huì)觸發(fā)事件

相關(guān)文章

  • jQuery利用FormData上傳文件實(shí)現(xiàn)批量上傳

    jQuery利用FormData上傳文件實(shí)現(xiàn)批量上傳

    這篇文章主要為大家詳細(xì)介紹了jQuery利用FormData上傳文件實(shí)現(xiàn)批量上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • jquery彈出遮掩層效果【附實(shí)例代碼】

    jquery彈出遮掩層效果【附實(shí)例代碼】

    下面小編就為大家?guī)?lái)一篇jquery彈出遮掩層效果【附實(shí)例代碼】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧
    2016-04-04
  • jQuery實(shí)現(xiàn)的動(dòng)態(tài)文字變化輸出效果示例【附演示與demo源碼下載】

    jQuery實(shí)現(xiàn)的動(dòng)態(tài)文字變化輸出效果示例【附演示與demo源碼下載】

    這篇文章主要介紹了jQuery實(shí)現(xiàn)的動(dòng)態(tài)文字變化輸出效果,采用jquery.quoterotator.min.js插件實(shí)現(xiàn)了文字動(dòng)態(tài)變換顯示的功能,并附帶演示與demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-03-03
  • jQuery+CSS3實(shí)現(xiàn)樹(shù)葉飄落特效

    jQuery+CSS3實(shí)現(xiàn)樹(shù)葉飄落特效

    本文給大家分享的是一段使用jQuery+CSS3實(shí)現(xiàn)樹(shù)葉飄落特效的代碼,效果非常不錯(cuò),分享給大家,希望大家能夠喜歡
    2015-02-02
  • jquery——九宮格大轉(zhuǎn)盤(pán)抽獎(jiǎng)實(shí)例

    jquery——九宮格大轉(zhuǎn)盤(pán)抽獎(jiǎng)實(shí)例

    本篇文章主要介紹了jquery——九宮格大轉(zhuǎn)盤(pán)抽獎(jiǎng)實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 詳解jQuery中的empty、remove和detach

    詳解jQuery中的empty、remove和detach

    empty、remove和detach三者都有把元素移除的作用,但細(xì)微的差別,造就了它們的使命不同。下面給大家介紹jQuery中的empty、remove和detach的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • jQuery?UI組件介紹

    jQuery?UI組件介紹

    這篇文章介紹了jQuery的UI組件,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • JQuery Ajax執(zhí)行跨域請(qǐng)求數(shù)據(jù)的解決方案

    JQuery Ajax執(zhí)行跨域請(qǐng)求數(shù)據(jù)的解決方案

    今天小編就為大家分享一篇關(guān)于JQuery Ajax執(zhí)行跨域請(qǐng)求數(shù)據(jù)的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • javaScript和jQuery自動(dòng)加載簡(jiǎn)單代碼實(shí)現(xiàn)方法

    javaScript和jQuery自動(dòng)加載簡(jiǎn)單代碼實(shí)現(xiàn)方法

    給大家介紹一下利用javaScript和jQuery實(shí)現(xiàn)自動(dòng)加載最簡(jiǎn)單的代碼寫(xiě)法。
    2017-11-11
  • 深入理解(function(){... })();

    深入理解(function(){... })();

    很多朋友不清楚(function(){... })();這幾種寫(xiě)法各代表是什么意思,下面小編通過(guò)本教程給大家簡(jiǎn)單介紹下(function(){... })();知識(shí),感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-08-08

最新評(píng)論