我試圖使用mousetrap JavaScript的插件來處理一些擊鍵以類似的方式,所以我認爲如下他們編寫了起來:訪問可變變量在事件關閉
var keys = [ 'b', 'i', 'u'];
for (var i=0; i < 3; ++i) {
var iKey = keys[i];
var iKeyUpper = iKey.toUpperCase();
Mousetrap.bind(
[ 'command+' + iKey,
'command+' + iKeyUpper,
'ctrl+' + iKey,
'ctrl+' + iKeyUpper],
(function(e) {
console.log("you clicked: " + i);
}));
}
但是,很明顯, i
是可變的。但是,我不確定如何在響應中競爭事件參數時編寫閉包。如何處理這種情況的建議?
您想在屬性處理程序中使用該事件嗎?在這種情況下,我不太明白「競爭」對不起。 – Edorka
向我們展示你的嘗試。事件參數有什麼問題?閉包IEFE應該返回接受'e'參數的處理函數。 – Bergi