亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js給動態生成的元素綁定事件

js給動態生成的元素綁定事件

MMTTMM 2019-03-22 19:15:07
for (let i=0;i<10;i++){       const html = `<webview src="http://www.github.com">i</webview>`;       $('.container').append(html)    }    const webview = document.querySelectorAll('webview')    webview[0].addEventListener('console-message', e => {        console.log(e.message);        if(e.message.indexOf('這次我回答了')!==-1){            alert('這才是我要的數據')        }    });需要在一個頁面遍歷一個或者多個webview標簽,這個標簽有個事件叫console-message,不定時會返回一些字符串,所以我要實時監聽這個事件,假如事先我知道webview標簽的數量這個就不是問題,但是這個標簽可能是N個,那我就要建立N個addEventListener的監聽事件,完全沒有思路,請教大神給個思路,謝謝
查看完整描述

4 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

事件委托 搜索關鍵字


查看完整回答
反對 回復 2019-04-01
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

事件是冒泡的話,只需要把事件綁定在 它們的父元素 .container 上,通過 ev.target 來檢查是哪個 webview 對象觸發的即可


查看完整回答
反對 回復 2019-04-01
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

首先console-message事件不同于click,mouseover事件,它不能冒泡,它也不能手動觸發,它只是個主動返回字符串的事件,在這我只是用了一種很不規范的解決辦法,就是直接for循環遍歷js方法


const webview = document.querySelectorAll('webview')


? ? for(let i=0;i<webview.length;i++){

? ? ? ? webview[i].addEventListener('console-message', e => {

? ? ? ? ? ? console.log(e.message);

? ? ? ? ? ? if(e.message.indexOf('這次我回答了')!==-1){

? ? ? ? ? ? ? ? alert('這才是我要的數據')

? ? ? ? ? ? }

? ? ? ? });

? ? }

雖然知道這樣很不規范,但是目前沒有更好的方法


查看完整回答
反對 回復 2019-04-01
  • 4 回答
  • 0 關注
  • 646 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號