国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - 如何利用原生JS監聽對加載更多出來的標簽進行事件綁定

瀏覽:100日期:2023-05-22 18:14:23

問題描述

有項目用到 JS 模板,但模板里的標簽是字符串非正常運行的html標簽,對頁面一開始就加載出來的標簽進行了事件綁定后,后加載出來的標簽,除非用jQuery,我想不出用什么來進行監聽然后實現事件綁定。而項目規定不可以使用如jQuery,zetpo這種框架來做,那么請問了,如題。

<p class='p'>標簽p</p><script> var ps = document.querySelectorAll(’.p’); for (var i = 0; i < ps.length; i++) {ps[i].addEventListener(’click’, function(){ var that = this; console.log(that.innerText);}) }</script><script type='template'> <p class='p'>字符串標簽p</p></script>

問題解答

回答1:

事件委托吧,一個最基本的代碼如下!

window.onload = function(){document.onclick = function(ev){var ev = ev || window.event;var target = ev.target || ev.srcElement;if(target.className.toLowerCase() === ’p’){  console.log(this.innerHTML);}}}

document可以用其它元素代替,但是,代替的元素必須是一開始就存在!不能是頁面加載了再動態加進來的!

回答2:

一般都是事件委托

回答3:

事件委托是沒錯,說白了就是利用 DOM 的事件冒泡, @守候你 的答案說明了原理,也解決了基本的問題。但在實際應用中還是會有一些局限,它只能處理終點擊的那個元素,而不是處理冒泡過程中遇到的元素。

我寫了一個冒泡過程中的示例:https://jsfiddle.net/4L7p5drb/1/

const outer = document.getElementById('outer');/** * host,已經存在的元素,用來綁定代理事件的 * evnetName,事件名稱 * predicate,用來判斷代理事件的目標對象 (el: HtmlElement) => bool 類型 * handler,處理函數,(e: Event) => any 類型,其 this 指向實際目標對象 */function proxyListener(host, eventName, predicate, handler) { host.addEventListener(eventName, e => {let target = e.target || e.srcElement;while (target !== host) { if (predicate(target)) {handler.call(target, e);// 這里沒有 break 主要是考慮一多層都擁有可判斷為 true 的對象呢// 可以根據實際需要加 break; } target = target.parentNode || target.parentElement;} });}proxyListener(outer, 'click', t => t.classList.contains('middle'), function(e) {console.log('hit', this); });

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久九九精品视频 | 92精品国产成人观看免费 | 波多野结衣被强在线视频 | 亚洲字幕波多野结衣作品 | 亚洲国产成人91精品 | 欧美曰韩一区二区三区 | 成人欧美一区二区三区视频 | 国产高清在线精品一区在线 | 日本s色大片在线观看 | 亚洲精品久久久久久久久久久网站 | 欧美一级高清片欧美国产欧美 | 亚洲自拍在线观看 | 日本久久久 | 国产成人在线网址 | 性国产精品 | 台湾三级香港三级经典三在线 | 亚洲欧洲日产国码二区首页 | 国产手机在线视频放线视频 | 成年男女拍拍拍免费视频 | 久久女同互慰一区二区三区 | 我要看欧美精品一级毛片 | 日韩一区二区精品久久高清 | 国产亚洲精品一区久久 | 亚洲欧美高清 | 亚洲精品一区最新 | 经典三级久久久久 | 特级毛片a级毛免费播放 | 亚洲精品h| 国内成人精品亚洲日本语音 | 日韩有码第一页 | 亚洲男人的天堂在线 | 国产成人高清一区二区私人 | a级片免费观看 | 一级女性全黄久久生活片免费 | 国产精品国产欧美综合一区 | 亚洲精品中文一区不卡 | 性欧美一级毛片 | 在线另类视频 | 国产成人一区二区三区在线视频 | 一级毛片成人午夜 | 欧美日本韩国一区二区 |