サブテーブルの列の非表示

サブテーブルの列を非表示にする方法についてお尋ねします。

例えば、サブテーブルAに「氏名」「ふりがな」「住所」「電話番号」という列があり、

「住所」列だけ非表示にできないかと試していますが、つまづいています。

 

app.record.detail.showの中で、下記のようにDOM操作で非表示にしたいのですが、theadの列は消せてもtbodyの列は消せませんでした。

$(‘table:eq(0) thead tr th:eq(2)’).hide();
$(‘table:eq(0) tbody tr td:eq(2)’).hide();

 

サブテーブルの行がすべて表示される前に実行されているように見えるのですが、

完全に表示が終わった後に実行させることはできますでしょうか。

OKAさん

お世話になっております。

サイボウズスタートアップスの武井です。

 

考えつくところですと以下の方法がございます。

 

(function () {
"use strict";

kintone.events.on(['app.record.detail.show'], function (event) {
$('table:eq(0) thead tr th:eq(2)').hide();
var tbodyTimerId = setInterval(function () {
if ($('table:eq(0) tbody tr td:eq(2)').length > 0) {
clearInterval(tbodyTimerId);
$('table:eq(0) tbody tr td:eq(2)').hide();
}
}, 100);
});
})();

 

kintoneでのDOM操作においては、

しばしばこのような「待ち」が必須となります。(あまりお勧めはできませんが……)

 

また、DOM操作につきましては、

今後のkintoneアップデートにて予告なくクラス名が変更される場合があるため、

極力使用しないことが推奨されております。

 

よろしくお願いいたします。

武井様

お世話になります。OKAです。

ご教授いただきありがとうございます。望んでいた動作になりました。また一つ勉強になりました。

アップデートによる仕様変更は都度注意したいと思います。