質問するログイン新規登録
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

347閲覧

jquery.pagination.jsでページ番号のリンクを上下に2つ表示したい

nyao

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2024/07/13 15:29

編集2024/07/13 23:24

0

0

下記のサイトで紹介されているページネーション(jquery.pagination.js)の表示位置を、リスト一覧の上下に挟むように変更したいです。

・紹介サイト
https://shanabrian.com/web/jquery/pagination.php
・使用スクリプト
https://shanabrian.com/web/jquery/js/jquery.pagination.js

デモの状態で、

item 1
item 2
item 3
<123456>

となっているのを

<123456>
item 1
item 2
item 3
<123456>

とする方法をご存じの方いらっしゃいましたら、何卒ご教示くださいませ。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ライブラリのオプションとしてはpaginationをどのように差し込むかの選択しかなく、複数設置する事は出来ないようです。

一度初期化後、生成されたpaginationを取得してコピーするのが一つの手段になりそうです。

JavaScript

1const items = $('.items').pagination({ 2 itemElement : '> .item' 3}); 4 5// 追加されたpagination要素に対し、イベントを含めたコピーを作成 6const $pagination = items.next().clone(true); 7 8// リストの手前にコピーしたpaginationを追加 9items.before($pagination);

投稿2024/07/14 01:37

Eggpan

総合スコア3297

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyao

2024/07/14 02:21

ご回答誠にありがとうございます。 ご教示いただいたソースを実行し、上下の表示を確認いたしました。 なお動作は問題なく行えましたが、現在のページの指定が片方のみで正常表示される状況でした。 上下で同じ内容が表示されましたら理想通りなのですが… ブログラムの仕様には含まれてない気がしますが、何か手法がないか模索させていただきます。 諸々ありがとうございました!
Eggpan

2024/07/14 08:57

上下のぺージャーの現在位置のことでしたら、何らかの手段で連動するようなコードを追加する必要があるかと思います。 ライブラリが複数のぺージャーを配置する想定の仕様で作られてないので、ライブラリ自体を改造するか、別ライブラリを利用するほうが良いかと思います。 有名なものだと DataTables などは上下レイアウトに対応しています。ただページャーがほしいだけだと多機能過ぎるかもしれませんが・・。 https://datatables.net/examples/layout/dom_multiple_elements.html
nyao

2024/07/15 01:51

度々のご案内誠にありがとうございます。 ご教示いただきましたプログラムを存じ上げておりませんでしたので、今後様々なカスタマイズを要する際に利用させていただきたいと思います。 この度はありがとうございました!
guest

0

ベストアンサー

回答に失敗して2回目です・・
重複していたらごめんなさい。

次のようなオプションがあるようでした。

setPaginationMode 'after' ページネーションを設置する方法。

指定するべき値が何かまで記載されていないようでしたが、
ソースコードを見ると次の4つから指定できるようでした。
after, before, append, prepend
(それぞれjQueryのメソッドに対応しているみたいでした。)

正しい使い方ができているかどうかわかりませんが、
次のように記述すると上下に2つページネーションが表示されることが確認できました。

js

1$('.items').pagination({ 2 itemElement: '> .item', // アイテムの要素 3 setPaginationMode: 'after', 4}); 5$('.items').pagination({ 6 itemElement: '> .item', // アイテムの要素 7 setPaginationMode: 'before', 8});

追記です。

コメントありがとうございます。

上で3ページ目を指定した場合でも、下では1ページ目のまま、というような表示でした。

CSSをつけていなかったので気づきませんでした・・
2つつけることは考慮していないのか、オプションでどうにかできるものではなさそうですね・・
独自に制御するとしたら次のような感じになりそうでしょうか。

js

1const $pagination1 = $('.items').pagination({ 2 itemElement: '> .item', // アイテムの要素 3 setPaginationMode: 'after', 4 changeEndCallback: () => { 5 changeEndCallbackHandler(true) 6 }, 7}); 8const $pagination2 = $('.items').pagination({ 9 itemElement: '> .item', // アイテムの要素 10 setPaginationMode: 'before', 11 changeEndCallback: () => { 12 changeEndCallbackHandler(false) 13 }, 14}); 15// 一方のページネーションの状態が変わったらもう一方のページネーションの状態を変えるための関数です。 16function changeEndCallbackHandler(from1To2) { 17 const from1 = (from1To2 ? $pagination1 : $pagination2) 18 const to1 = (from1To2 ? $pagination2 : $pagination1) 19 to1.movePage(from1.getStatus().activePageNumber) 20}

投稿2024/07/14 00:07

編集2024/07/14 03:57
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyao

2024/07/14 02:13

ご回答誠にありがとうございます。 表示位置の仕様に関してもご案内いただき、助かりました。 おかげさまで上下の表示を確認できました。 動作検証を行いましたところ、上下で別々に機能しておりました。 上で3ページ目を指定した場合でも、下では1ページ目のまま、というような表示でした。 取り急ぎ上部に表示したい目標は達成出来ましたので、感謝いたします!
nyao

2024/07/15 01:49

度々のご回答誠にありがとうございます。 ご案内をいただきました内容で、まさに希望通りの動作が確認できました。 ご要望にお応えいただき、誠に感謝申し上げます。 この度は本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問