添加监听器

for ( i = 0; i < kbButtons.length; i++ ) {
        kbButtons[i].addEventListener("click", function() { clickKbButton( this ); }, false);
    }


应该删除监听器

function clickKbButton ( elem ) {
    elem.removeEventListener("click", function() { clickKbButton( this ); }, false);
    elem.id = "invis"
    }


一切正常,在控制台中没有错误,单击按钮仍然有效,但是单击后并未将其删除

最佳答案

按照documentation,我的猜测是事件处理程序应该引用相同的函数:

for ( i = 0; i < kbButtons.length; i++ ) {
    kbButtons[i].addEventListener("click", clickKbButton, false);
}
function clickKbButton ( ev ) {
    this.removeEventListener("click", clickKbButton, false);
    this.id = "invis"
}


Simple fiddle example

10-08 01:57