Javascriptの問題で私を助けてくれる人はいますか? サイトの投稿展開機能を作成しようとしていますが、何らかの理由で最初の投稿を展開すると、2 番目の投稿が展開されなくなり、代わりにスレッド ページの完全な投稿にリダイレクトされます。2 番目の投稿を展開し、次に最初の投稿を展開しても、問題はありません。
ページが読み込まれたときに実行されるコードは次のとおりです。
function postExpansionPrep(){
if(!document.body.className){
var links = document.getElementsByClassName("abbrev");
for (var i = 0; i < links.length; i++ ){
(function(e) {
links[e].firstElementChild.addEventListener("click", function(a){ expandPost(links[e].firstElementChild); a.preventDefault(); }, true);
console.log(links[e].firstElementChild.href);
})(i);
}
}
}
リンクをクリックして投稿を展開すると実行されるコードを次に示します。
function expandPost(link){
if(link.hash){
$.get(link, function(data) {
var loadedPost = $(data).find("#reply" + link.hash.replace("#",""));
document.getElementById("reply" + link.hash.replace("#","")).lastElementChild.innerHTML = $(loadedPost).find("blockquote").last().html();
});
}
else{
$.get(link, function(data) {
var loadedPost = $(data).find("#parent" + link.pathname.substring(link.pathname.lastIndexOf("/")+1));
document.getElementById("parent" + link.pathname.substring(link.pathname.lastIndexOf("/")+1)).lastElementChild.innerHTML = $(loadedPost).find("blockquote").last().html();
});
}
}
ここで実際の問題を確認できます: http://www.glauchan.org/test/
ちなみに、この機能はオプトインなので、Board Options メニューで Post Expansion を有効にする必要があります。