Das Problem ist, dass wenn ich Seitennummerntasten am unteren Rand der Seite erstelle, der onclick immer nur mit dem letzten erstellten Element funktioniert.Hinzufügen eines onclick-Ereignisses zu einem neuen html-Element, das nur für das letzte Element funktioniert
Hier ist, was die Seite Tasten wie folgt aussehen:
for(var i = 0; i < numberOfPages; i++) {
if(Math.floor((((startIndex + 1)/10) + 1)) == (i + 1)) {
var newElement = document.createElement("u");
document.getElementById("imagesNav").appendChild(newElement);
newElement.id = "imagesNavU";
var newElement = document.createElement("a");
document.getElementById("imagesNavU").appendChild(newElement);
var str = "page" + (i + 1);
newElement.innerHTML = i + 1;
newElement.onclick=function(){currentPageNumber(str);};
} else {
var newElement = document.createElement("a");
document.getElementById("imagesNav").appendChild(newElement);
var str = "page" + (i + 1);
newElement.innerHTML = i + 1;
newElement.onclick=function(){currentPageNumber(str);};
}
if(i + 1 != numberOfPages) {
document.getElementById("imagesNav").innerHTML += " ";
}
}
}
Die erste if-Anweisung legt einfach unterstrichenen Tags auf, wenn dieses Element die aktuelle Seite.
Edit: Das Problem wurde gelöst. Danke an alle für ihre Hilfe!
Wäre viel einfacher zu helfen, wenn Sie zuerst den Code 'currentPageNumber()' -Funktion enthalten. – etherealite
@etherealite Diese Funktion ist irrelevant, das Problem ist, dass alle Closures die selbe 'str'-Variable verwenden. – Barmar
@Barmar Würde die Funktion trotzdem aufgerufen werden? Die Funktion wird immer nur mit der letzten Taste aufgerufen. – mtagius