// Bind an event handler to keydown on the entire document
document.addEventListener("keydown",function(e){
// Everything in here happens on keydown
// keys must be an array declared somewhere earlier in the code
// This loops through that array
for(i=0;i < keys.length; i++) {
// If the current key we are looking at in the array
// is the key that was pressed
if(e.keyCode == keys[i]){
// Get the (i+1)th childnode of foo
var tri = document.getElementById("foo").childNodes[i];
// If i = 0 get the second element (not the first)
if(i==0){
var tri = document.getElementById("foo").childNodes[1];
}
// If i == 1 get the fourth element (not the second)
if(i==1){
var tri = document.getElementById("foo").childNodes[3];
}
// Otherwise get the (i*2+2)th element.
if(i > 1) {
var tri = document.getElementById("foo").childNodes[(i*2)+1];
}
// Here we are still in an if-statement, in a loop, in a function,
// so there is probably more code here, at least some closing }'s
注意が上書きされます。
はまたi = 0
、(i*2)+1 = 1
とi = 1
、(i*2)+1 = 3
ので、if文、それらの他の2つは、同様役に立たないとき第三は、すべてのケースをカバーし、たとえ句内にある必要はありませんので注意してください。上記のコードに100%と等価である:i
はkeys
という配列を反復処理するために使用される変数であり、選択されたノードがi
に依存するので
document.addEventListener("keydown",function(e){
for(i=0;i < keys.length; i++) {
if(e.keyCode == keys[i]){
var tri = document.getElementById("foo").childNodes[(i*2)+1];
...
。 keys
は、珍しい目的の配列でなければなりません。これはkeyCodeの配列で、配列内のkeyCodeの位置によって、そのキーが押されたときにどのノードを選択してtri
に格納するかを決定します。
閉じ中括弧がないために構文エラーが発生する – Ibu
@Ibu - 明らかに、このスニペットにはメソッド全体が含まれていません –