jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

lolmuta 發表於 2015-11-19 17:47

javascript 注入Html

[i=s] 本帖最後由 lolmuta 於 2015-11-19 17:52 編輯 [/i]

下面是一段javascript,我想要在某一元素加入onclick 事件,當使用者按下該元素時,另一個元素的背景色會變成灰色,
但是一執行完時,卻是連按都沒按就全部變灰色,請問為什麼會這樣呢??
ps:這段程式碼是利用chrome 擴展功能一個叫"javascript 注入Html"的方式來上執行的,還有一些設定,不過我想是無傷大雅的。[code]var dataobj=document.getElementsByTagName('table');
for (var i=3;i<dataobj.length;i++){               
        if (dataobj[i].getElementsByTagName('tr').length==2){                               
                dataobj[i].getElementsByTagName('tr')[1].addEventListener('click',
                        markView(dataobj[i].getElementsByTagName('tr')[0]));
        }
}
function markView(obj){       
        obj.style.backgroundColor='grey';        
}[/code]

wmh 發表於 2015-11-20 22:14

[b]回復 [url=http://jsgears.com/redirect.php?goto=findpost&pid=5964&ptid=4106]1#[/url] [i]lolmuta[/i] [/b]

addEventListener 第二個參數應該要帶入 function,但是你這段是執行 function:[code]markView(dataobj[i].getElementsByTagName('tr')[0])[/code]所以要改成 function 變成這樣才行:[code]
function () {
    markView(dataobj[i].getElementsByTagName('tr')[0]);
}
[/code]

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.