関連レコードのページ切り替え(< or >ボタン)をした際に処理が走る書き方を教えていただきたいです。
詳細画面の関連レコードで、あるタイトルの場合は列幅を縮める処理をjsで書きました。
その処理自体は正常に動作したのですが、
その関連レコード内でページ切り替えをしてみると、列幅が元に戻ってしまい、画面自体のリロードしない限り反映されなくなりました。
ページを移動した際も、その処理が再度走るように設定したいのですが、記載方法を教えていただけないでしょうか。
よろしくお願いします。
関連レコードのページ切り替え(< or >ボタン)をした際に処理が走る書き方を教えていただきたいです。
詳細画面の関連レコードで、あるタイトルの場合は列幅を縮める処理をjsで書きました。
その処理自体は正常に動作したのですが、
その関連レコード内でページ切り替えをしてみると、列幅が元に戻ってしまい、画面自体のリロードしない限り反映されなくなりました。
ページを移動した際も、その処理が再度走るように設定したいのですが、記載方法を教えていただけないでしょうか。
よろしくお願いします。
JavaScriptで実装する場合、レコード詳細表示時で関連レコードのページ切り替えボタンをdocument.getElementsByClassName等で探し(試していないので分かりませんが、detail.showでそのまま走らせても関連レコードの描画が終わってなく要素が見付からないかもしれないので描画完了まで実行を待たせる工夫が必要です)、見付かった要素に対してaddEventListener()でクリックイベントを登録すれば可能ではありますが、これも描画完了を待つ必要がありそうなのであまり現実的ではないかもしれません。
それよりは、CSSで実装すれば簡単だと思います。「あるタイトルの場合」とあり条件があるようなので、JavaScriptで「あるタイトルの場合だけkintone.app.record.getFieldElement()で関連レコードを取得し特定のクラス名を追加」CSSで「特定のクラス名を含む関連レコードの幅を縮める」といった処理であればまだ実現しやすいかと思います。
ご回答いただきましてありがとうございます。
試してみたのですが、認識違いでしたら申し訳ありません。
クラス名を追加しても次のページに遷移すると
追加したクラス名が消えてしまい、CSSでも反応しなくなりました。
説明がわかりづらくて大変恐縮ですが、
「あるタイトル」というのは関連テーブルの中の列名のことで、
複数ある関連テーブルの中で「ある列名」を持っていた場合、その列ヘッダー要素を取得して列幅(width)を変更したいと思っています。
ただ、次ページに遷移するとそのjsの設定が初期化されてしまいautoに戻ってしまいます。
CSSで各ヘッダー要素をベタ書きで記載して列幅を変えても良いのですが、
関連テーブルの数が多いので、
できれば各関連テーブルをループしてある列名があればその要素を取得して列幅を変更するという書き方をしたく
他に初期化されない方法はございませんでしょうか。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。