国产探花免费观看_亚洲丰满少妇自慰呻吟_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,匹配時會觸發事件

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

圖片精選

主站蜘蛛池模板: 东光县| 泉州市| 华坪县| 房产| 黔南| 开化县| 黔西县| 威宁| 临夏市| 长春市| 萍乡市| 阜宁县| 文成县| 崇仁县| 岳普湖县| 清徐县| 海城市| 柳河县| 手游| 札达县| 乐陵市| 贵溪市| 大渡口区| 惠水县| 泰州市| 沂南县| 邵东县| 武宣县| 岳普湖县| 石棉县| 封丘县| 安溪县| 改则县| 苍南县| 延安市| 陆河县| 兴海县| 新乐市| 罗平县| 禹州市| 泊头市|