国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery事件委托代碼實踐詳解

2024-05-06 15:37:43
字體:
來源:轉載
供稿:網友

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,匹配時會觸發事件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宜丰县| 秀山| 民勤县| 宁晋县| 海盐县| 大石桥市| 同江市| 乌海市| 水富县| 满洲里市| 兴隆县| 兴宁市| 三都| 罗甸县| 镇巴县| 电白县| 宁远县| 郸城县| 天台县| 吉木萨尔县| 大宁县| 新沂市| 南投市| 丰都县| 宁津县| 阜康市| 京山县| 宁南县| 长泰县| 大足县| 镇原县| 山东省| 吐鲁番市| 确山县| 无棣县| 安陆市| 漠河县| 保亭| 九江县| 长治县| 专栏|