Also was auch immer den Fehler verursacht muss tatsächlich in dieser Schleife sein: Erstellen einer Box durch Aufrufen des GridBox-Konstruktors auf eigene Arbeit. Die von der buildField-Funktion erstellten Objekte geben jedoch kein On-Click-Ereignis zurück.HTML-Button erstellt in Objektkonstruktoren onclick -Ereignis funktioniert nicht
var grid = [];
function buildField(size){
//loops through each row
for(var y=0; y<size;y++){
//loops through each column
grid[y]=[];
for(var x=0; x<size; x++){
//create new object for grid
grid[y][x] = new gridBox(x,y);
}
document.getElementById("board").innerHTML += "<br>";
}
}
function gridBox(x,y){
this.x=x;
this.y=y;
var me = this;
//function to create and add button.
function makeBtn(){
var btn = document.createElement("BUTTON");
btn.type = "BUTTON";
btn.className = "gridButton";
btn.value = "BUTTON";
btn.name = me;
btn.onclick = function(){
console.log("click");
};
document.getElementById("board").appendChild(btn);
console.log("madeButton");
}
makeBtn();
}
Anstatt die onclick-Eigenschaft einzurichten, haben Sie versucht, den Callback über 'btn.addEventListener()'? –
http://jsbin.com/vihuwis/1/edit?html,js,output - funktioniert gut, wenn ich es teste. – Quentin
Es gibt genügend Code dort, um das Problem zu verstehen, aber Sie sollten wirklich eine [MCVE] – Quentin