麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

jQuery事件委托代碼實踐詳解

2019-11-19 11:18:10
字體:
來源:轉載
供稿:網友

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

在需要為較多的元素綁定事件時應該使用事件委托 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");};

點擊td targetTd,結果如下:

Td is clickedBody 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");};

點擊td targetTd,結果如下:

Td is clicked 

js事件委托

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

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綁定點擊事件可以使用:

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

加入selector參數,使用事件委托

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

或者:

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

此時事件冒泡到document或者table時會監測是否是td selector,匹配時會觸發事件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91在线视频播放 | 九九热免费观看 | 免费在线中文字幕 | 久草手机视频在线观看 | 久久久免费观看完整版 | 羞羞的视频免费在线观看 | 一级电影在线观看 | 27xxoo无遮挡动态视频 | 欧美黄成人免费网站大全 | 男男啪羞羞视频网站 | 女18一级大黄毛片免费女人 | 成人精品久久久 | 日韩视频一区二区 | 精品国产一区二区在线 | 狠狠干五月天 | 羞羞视频2023| 特片网久久 | 国产视频导航 | 国产91丝袜在线播放 | 男女一边摸一边做羞羞视频免费 | 国产一区精品在线观看 | 蜜桃一本色道久久综合亚洲精品冫 | 午夜视频你懂的 | 欧美国产永久免费看片 | 日本a级一区 | 免费一级特黄欧美大片勹久久网 | 国产免费一区二区三区视频 | 日本视频网 | 色综av| 一级@片 | 久久艳片| 日日草日日干 | 欧美人禽| 91精品一区二区综合在线 | 中午字幕无线码一区2020 | 精品一区二区三区四区在线 | 毛片网站网址 | 午夜视频你懂的 | 久久精品a一级国产免视看成人 | www.99热视频 | 亚洲乱操 |