2016-06-22 26 views
0

我想使用'addEventListener'從'event'獲取某些東西,但在使用後我必須使用'removeEventListener'來移除事件偵聽器。我該如何處理這種情況?如何從addEventListener事件到antoher函數而不使用匿名函數

例如:

var elem = document.createElement('div'); 

    // I need argument of *event* 
    elem.addEventListener('click', function(*event*){ 
     console.log(*event*) 
    }); 

    // after used, I have to remove it, but only named function can be removed 
    elem.removeEventListener('click', function(event){ 

    }); 
    // this way can be actually removed, but I need *event* 
    elem.removeEventListener('click', namedFunc); 

我怎樣才能解決這個問題?

+0

好吧,我已經解決了這個問題... –

+0

您可能想要[張貼解答](http://stackoverflow.com /幫助/自我回答) – Bergi

回答

0

我很好奇,你所採取的方式,順便說一句

function once(el, ev, cb){ 
    el.addEventListener(ev, function f(event){ 
     cb.call(event, event); 
     el.removeEventListener(ev, f); 
    }, false); 
}