在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ js給動(dòng)態(tài)生成的元素綁定事件

js給動(dòng)態(tài)生成的元素綁定事件

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('這才是我要的數(shù)據(jù)')
        }
    });

需要在一個(gè)頁(yè)面遍歷一個(gè)或者多個(gè)webview標(biāo)簽,這個(gè)標(biāo)簽有個(gè)事件叫console-message,不定時(shí)會(huì)返回一些字符串,所以我要實(shí)時(shí)監(jiān)聽這個(gè)事件,假如事先我知道webview標(biāo)簽的數(shù)量這個(gè)就不是問(wèn)題,但是這個(gè)標(biāo)簽可能是N個(gè),那我就要建立N個(gè)addEventListener的監(jiān)聽事件,完全沒有思路,請(qǐng)教大神給個(gè)思路,謝謝

回答
編輯回答
尛憇藌

事件委托 搜索關(guān)鍵字

2017年2月4日 08:13
編輯回答
來(lái)守候

事件是冒泡的話,只需要把事件綁定在 它們的父元素 .container 上,通過(guò) ev.target 來(lái)檢查是哪個(gè) webview 對(duì)象觸發(fā)的即可

2017年3月7日 10:31
編輯回答
喵小咪

謝謝大家的解答,首先console-message事件不同于click,mouseover事件,它不能冒泡,它也不能手動(dòng)觸發(fā),它只是個(gè)主動(dòng)返回字符串的事件,在這我只是用了一種很不規(guī)范的解決辦法,就是直接for循環(huán)遍歷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('這才是我要的數(shù)據(jù)')
            }
        });
    }

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

2018年4月25日 18:03
編輯回答
舊言
<ul onclick="fun(event)">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script type="text/javascript">  
        function fun(e) {
            console.log(e)
        }
    
    </script>

https://www.cnblogs.com/liuga...

2017年5月31日 12:03