ページの下部にページ番号ボタンを作成すると、onclickは作成された最後の要素でしか動作しないという問題があります。ここで最後の要素でのみ動作する新しいhtml要素にonclickイベントを追加する
があるページのボタンがどのように見えるか:
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 += " ";
}
}
}
文はちょうどその要素が現在のページである場合には、下線のタグを置く場合は、最初。
編集:問題は解決されました。皆さん、ありがとうございました!
'currentPageNumber()'関数を最初に組み込んだ方がはるかに簡単です。 – etherealite
@etherealiteその関数は無関係ですが、問題はすべてのクロージャが同じ 'str'変数を使用していることです。 – Barmar
@Barmar関数はまだ呼び出されますか?この関数は最後のボタンでのみ呼び出されます。 – mtagius