Ich würde gerne verstehen, warum in dieser "Schleife" kann ich nicht den Schlüssel des Elements in einem Ereignis mit einer Schließung/innere Funktion befestigen. Ich weiß, was mit anderen Loops wie for,while
passiert ... Ich verstehe nicht den wahren Grund, warum dieser Ansatz in dieser Situation nicht funktioniert.JS IndexedDB Schließung/innere Funktion
F: Warum kann ich den Schlüssel nicht direkt übergeben?
item.transaction(["itens"], "readonly").objectStore("itens").openCursor()
.onsuccess = function(e) {
var info = e.target.result;
if (info) {
var div = document.createElement("div");
var img = document.createElement("img");
var h2 = document.createElement("h2");
img.src = "../imagens/misc/" + info.value.image;
h2.innerHTML = info.value.title;
div.appendChild(h2);
div.onclick = function() {
//always the lasy key.
console.log(info.key);
};
div.appendChild(img);
box.appendChild(div);
info.continue();
}
};
Ich weiß, Art der Lösung funktioniert ...
bt.onclick = (function(index) {
return function(){console.log('iterator: ' + index);}
})(i);
with ({ n: i }) {
bt.onclick = function(index) {
console.log('iterator: ' + n);
};
}