前提・実現したいこと
ページの前後リンクをjQueryで実装したく、下記のリンクに記載されているコードを試したところ、階層の違うページだと繊維することができませんでした。
ページの前後リンクをjQueryで動的に生成する https://nakazilab.com/prev-next-page-link-create/
漠然とした質問で申し訳ないのですが、この場合どのような設定にすればよろしいでしょうか。
こちらで設定したいページのリンクは下記のコードになります。
サイトに掲載されているリンク var page = ['index.html', 'page02.html', 'page03.html', 'page04.html']; 実装したいリンク var page = ['index.html', '/pages/1.html', '/pages/2.html', '/pages/3.html'];
ディレクトリ構造はこのようになっています
index.html pages - 1.html - 2.html - 3.html
自身で記述したコード
$(function() { var page = ['index.html', '/pages/1.html', '/pages/2.html', '/pages/3.html']; var pageName = ['page01', 'page02', 'page03', 'page04']; $('.container').after( '<div id="pagination"><ul></ul></div>'+ '<div id="prevNextNav"><ul><li class="prev"><a href="#">prev</a></li><li class="next"><a href="#">next</a></li></ul></div>' ); var arrayNum = page.length-1; var pageNum = window.location.href.split('/').length; var pageLink = window.location.href.split('/')[pageNum-1]; var currentPage = $.inArray(pageLink, page); if(currentPage == 0) { var next = currentPage+1; var prev = arrayNum; } else if(currentPage == arrayNum) { var next = 0; var prev = currentPage-1; } else { var next = currentPage+1; var prev = currentPage-1; } $('#prevNextNav .prev a').attr('href', page[prev]); $('#prevNextNav .next a').attr('href', page[next]); for(i=0;i<=arrayNum;i++){ $('#pagination ul').append('<li><a href="'+page[i]+'">'+pageName[i]+'</a></li>'); } $('#pagination a[href$="'+pageLink+'"]').addClass('current'); });
よろしくお願いします。
細かくて申し訳ないですが
繊維→遷移
あとURLはリンクにできるので、リンクで提示していただいた方が助かります。
また、ご自身のHTML、CSSなどもご提示してください。
例え参考記事そのままとしても今実際起きている問題は質問者さんの手元のコードで起きていますので。
ご回答ありがとうございます!
遷移でしたね・・・訂正ありがとうございます!
ローカルのgulpで作成した環境で実装していますので、リンクはローカルのアドレスになります。
自身のコードはこちらになります。
----------
$(function() {
var page = ['index.html', '/pages/1.html', '/pages/2.html', '/pages/3.html'];
var pageName = ['page01', 'page02', 'page03', 'page04'];
$('.container').after(
'<div id="pagination"><ul></ul></div>'+
'<div id="prevNextNav"><ul><li class="prev"><a href="#">prev</a></li><li class="next"><a href="#">next</a></li></ul></div>'
);
var arrayNum = page.length-1;
var pageNum = window.location.href.split('/').length;
var pageLink = window.location.href.split('/')[pageNum-1];
var currentPage = $.inArray(pageLink, page);
if(currentPage == 0) {
var next = currentPage+1;
var prev = arrayNum;
} else if(currentPage == arrayNum) {
var next = 0;
var prev = currentPage-1;
} else {
var next = currentPage+1;
var prev = currentPage-1;
}
$('#prevNextNav .prev a').attr('href', page[prev]);
$('#prevNextNav .next a').attr('href', page[next]);
for(i=0;i<=arrayNum;i++){
$('#pagination ul').append('<li><a href="'+page[i]+'">'+pageName[i]+'</a></li>');
}
$('#pagination a[href$="'+pageLink+'"]').addClass('current');
});
----------
お手すきの際にご確認いただけると幸いです。
よろしくお願いします。
質問は編集できますので本文を編集してください。
特にコードはマークダウンという機能を利用して提示することが通例ですので、コメント欄では使えないので必ず質問編集して追記してください。
https://teratail.com/help#about-markdown
本文で編集可能なのですね!
教えていただきありがとうございます。
記載しておきました。
インデント、は分かりますか?
{}などはどこで開始してどこで終了しているのか視認しやすくしたほうが
コーディングはやりやすくなりますよ。
なぜかインデントが消えていますね。
確認ありがとうございます!
回答3件
あなたの回答
tips
プレビュー