下記のスレッドの、からにさんのコードをベースにして"サブテーブルの行追加/削除ボタンの位置変更"を、「指定したテーブル」に対して、「固定値を与えることなく」調整するためのコードを書いてみました。
コード:
var adjustLeft = '0px';
function subTableIDRtn(fieldCode) {
var subTableObj = {};
var subTableList = cybozu.data.page.SCHEMA_DATA.subTable;
for(var i in subTableList) {
if(subTableList[i].var == fieldCode) {
var subTableObj = subTableList[i];
break;
}
}
return subTableObj ? subTableObj.id : undefined;
}
kintone.events.on(['app.record.create.change.テーブルのフィールドコード', 'app.record.edit.change.テーブルのフィールドコード'], function(event) {
var id = subTableIDRtn("テーブルのフィールドコード");
var subTableElement = $(".subtable-" + id).get(0);
var subTableOpElements = subTableElement.getElementsByClassName("subtable-operation-gaia");
[].forEach.call(subTableOpElements, function(button){
button.style.position = 'absolute';
button.style.marginLeft = adjustLeft;
button.style.marginTop = '30px';
});
return event;
});
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function(event) {
var id = subTableIDRtn("テーブルのフィールドコード");
var subTableElement = $(".subtable-" + id).get(0);
var subTableOpElements = subTableElement.getElementsByClassName("subtable-operation-gaia");
adjustLeft = Math.floor(subTableElement.getBoundingClientRect().left - subTableOpElements.item(0).getBoundingClientRect().left) + 'px';
[].forEach.call(subTableOpElements, function(button){
button.style.position = 'absolute';
button.style.marginLeft = adjustLeft;
button.style.marginTop = '30px';
});
return event;
});
何かのお役に立ちましたら幸いです。
また、リファクタリングのアイデアや注意点などがありましたら、アドバイスを頂けると幸いです。