當我有以下功能:維護的價值「這個」使用事件偵聽器
onDocumentKeyUp: function (e) {
if (e.keyCode === 27) {
this.deactivate();
}
}
我想結合這個像這樣:
$(document).on('keyup', onDocumentKeyUp);
然而,當我這樣做, this
裏面的onDocumentKeyUp
函數是指文檔。我解決了這個做:
var self = this;
$(document).on('keyup', function(e) { self.onDocumentKeyUp(e); });
這工作,但東西告訴我有拉這一關一個更清潔的方式。某種程度上會在.call()
或.apply()
..在這裏應用?我仍然不確定這些功能是如何工作的。
此外,我不一定要限制自己到jQuery.on()
。如果有這樣的「香草」方式,請成爲我的客人來教我。
你的意思是? $(document).on('keyup',function(e){onDocumentKeyUp.call(self,e);}); – cbayram
可以,但對我來說感覺不太清潔。我想知道是否有一種乾淨的,慣用的方式將事件的價值傳遞給事件處理程序。 – cabaret