# サブテーブルの行追加/削除ボタンの位置変更

**URL:** <https://community.cybozu.dev/t/topic/4041>\
**Category:** kintone 開発相談\
**Created:** [2019 年 5 月 24 日午後 3:27 UTC](https://community.cybozu.dev/t/topic/4041 "2019-05-24T15:27:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1080](https://avatars.discourse-cdn.com/v4/letter/l/c0e974/32.png) [@Legacy\_Account1080](https://community.cybozu.dev/u/Legacy_Account1080)\
**Post date:** [2019 年 5 月 24 日午後 3:27 UTC](https://community.cybozu.dev/t/topic/4041/1 "2019-05-24T15:27:10Z")

</div>

下記のスレッドの、からにさんのコードをベースにして"サブテーブルの行追加/削除ボタンの位置変更"を、「指定したテーブル」に対して、「固定値を与えることなく」調整するためのコードを書いてみました。

**ベース:**  
&nbsp; &nbsp; [https://developer.cybozu.io/hc/ja/community/posts/360018051303-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E4%B8%AD%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%9F%E3%81%84](https://developer.cybozu.io/hc/ja/community/posts/360018051303-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E4%B8%AD%E3%81%AB%E5%85%A5%E3%82%8C%E3%81%9F%E3%81%84)

**コード:**

```
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;
});

```

何かのお役に立ちましたら幸いです。  
また、リファクタリングのアイデアや注意点などがありましたら、アドバイスを頂けると幸いです。
