Gridstack.js: ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์˜ ๋งˆ์ง€๋ง‰ ํ–‰์—์„œ ์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ ์ƒ์œ„ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•˜๋ฉด ์ผ๋ถ€ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์˜ ์œ„์ ฏ์ด ์œ„์น˜๋ฅผ ์žƒ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 05์›” 04์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: gridstack/gridstack.js

์•ˆ๋…•ํ•˜์„ธ์š”,

ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•œ ๋‹ค์Œ ์ƒ์œ„ ๊ทธ๋ฆฌ๋“œ์—์„œ ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ œ๊ฑฐํ•  ๋•Œ ์ด์ƒํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐœ์˜ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ํŠน์ • ํ•ญ๋ชฉ์— ์ค‘์ฒฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ผ๋ถ€ ํ™•์ธ๋ž€์„ ์„ ํƒ/์„ ํƒ ์ทจ์†Œํ•˜์—ฌ ๋‘ ๊ทธ๋ฆฌ๋“œ์—์„œ ์œ„์ ฏ์„ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์—์„œ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•  ๋•Œ ์ƒ์œ„ ๊ทธ๋ฆฌ๋“œ ์œ„์ ฏ์˜ ํฌ๊ธฐ๋ฅผ ํ•ญ์ƒ ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๋งŒํผ ์ตœ๋Œ€๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์—์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํ•˜๋‚˜์˜ ํŠน์ • ๊ฒฝ์šฐ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๋Š” ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์˜ ๋งˆ์ง€๋ง‰ ํ–‰์— ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ ํฌ๊ธฐ ์กฐ์ •์€ grid.resize()๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
  3. gridNested.removeWidget()์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์—์„œ ๋งˆ์ง€๋ง‰ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  4. grid.removeWidget()์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์—์„œ ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์˜ ์ƒ์œ„ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ฉ”์ธ ๊ทธ๋ฆฌ๋“œ์˜ ์œ„์ ฏ ์ค‘ ๋งˆ์ง€๋ง‰ ๋ช‡ ๊ฐœ๋Š” ์œ„์น˜๋ฅผ ์žƒ๊ณ  ๋ฉ”์ธ ๊ทธ๋ฆฌ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์œผ๋กœ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์†์„ฑ์€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ ์ง€๋˜๊ณ  ์œ„์น˜๋งŒ ์ž˜๋ชป๋ฉ๋‹ˆ๋‹ค(์ƒ๋‹จ: 0, ํ•˜๋‹จ: ๊ทธ๋ฆฌ๋“œ ๋†’์ด ). ์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๋กœ ๋Œ์•„๊ฐ€์ง€๋งŒ ์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๋‹ค์‹œ ์ œ๊ฑฐํ•œ ํ›„ ์ด์ƒํ•œ ์ผ์ด ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ํ•œ ๋ฒˆ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์—์„œ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ•ด๋‹น ์œ„์ ฏ๋„ ์ฒซ ๋ฒˆ์งธ ํ–‰์— ๊ณ„์† ๋–  ์žˆ๋‹ค๊ฐ€ ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ•œ ํ›„ ๋‹ค์‹œ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ๋ฅผ ๋งˆ์ง€๋ง‰ ํ–‰ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ์ด๋™ํ•˜๋ฉด ์ž˜๋ชป๋œ ์œ„์น˜ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์กฐ์‚ฌํ•œ ๋ฐ”์™€ ๊ฐ™์ด, ๋‘ ๊ทธ๋ฆฌ๋“œ์— ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•  ๋•Œ๊นŒ์ง€ ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์˜ ์ƒ์œ„ ์œ„์ ฏ ํฌ๊ธฐ๋ฅผ ํ•œ ๋ฒˆ ์กฐ์ •ํ•œ ํ›„์—๋งŒ ์ด์ƒํ•œ ์œ„์น˜ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํฌ๊ธฐ ์กฐ์ •์ด ๋ฌธ์ œ๋ฅผ ๋ง์ณ ๋†“๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ด๊ฒƒ์€ ๋” ํฐ ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ถ€์ผ ๋ฟ์ด๋ฏ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐ”์ด์˜ฌ๋ฆฐ์„ ์ œ๊ณตํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ์Šคํฌ๋ฆฐ์ƒท๋งŒ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์ฒฉ(ํ…Œ๋‘๋ฆฌ) ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์ „์—:
gridstack2
์ค‘์ฒฉ๋œ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ๋‹ค๋ฅธ ์œ„์ ฏ ์ค‘ ์ผ๋ถ€๋Š” ์›๋ž˜ ์œ„์น˜์—์„œ ์‚ฌ๋ผ์ง€๊ณ  ๊ธฐ๋ณธ ๊ทธ๋ฆฌ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์œผ๋กœ ๋– ๋‹ค๋‹ˆ๋Š” ๋ฐ˜๋ฉด, ํ•ด๋‹น ์œ„์น˜๋Š” ๊ทธ๋ฆฌ๋“œ์˜ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜(ํ•˜๋‹จ์— ๋นˆ ๊ณต๋ฐฑ)์— ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
gridstack3

๋‚ด ๊ทธ๋ฆฌ๋“œ๋Š” ๋‹ค์Œ ์˜ต์…˜์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

grid = $('#grid.grid-stack').gridstack({
            width: 2,
            cellHeight: 84,
            verticalMargin: 4,
            animate: true,
            disableOneColumnMode: true,
            height: 0
}).data('gridstack');        

gridNested = $('#gridNested.grid-stack').gridstack({
            width: 2,
            cellHeight: 80,
            verticalMargin: 4,
            animate: true,
            disableOneColumnMode: true,
            float: true,
            height: 0
}).data('gridstack');

HTML ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<div id="grid"  class="grid-stack grid-stack-2">
    <div id="element1" class="grid-stack-item element nestedblock" data-id="1" data-gs-width="2" data-gs-height="1" data-gs-min-width="2" data-gs-max-width="2" data-gs-max-height="8" data-gs-y="0" data-gs-x="0">
         <div class="grid-stack-item-content">
             <div id="gridNested" class="grid-stack grid-stack-2">
                 <div id="element20" class="grid-stack-item element" data-id="20" data-gs-width="1" data-gs-height="1" data-gs-min-width="1" data-gs-max-width="2" data-gs-max-height="1" data-gs-y="0" data-gs-x="0">
                     <div class="grid-stack-item-content">
                        <!--contents-->
                    </div>
                </div>
                <div id="element21" class="grid-stack-item element" data-id="21" data-gs-width="1" data-gs-height="1" data-gs-min-width="1" data-gs-max-width="2" data-gs-max-height="1" data-gs-y="0" data-gs-x="1">
                     <div class="grid-stack-item-content">
                        <!--contents-->
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div id="element2" class="grid-stack-item element" data-id="2" data-gs-width="1" data-gs-height="1" data-gs-min-width="1" data-gs-max-width="2" data-gs-max-height="1" data-gs-y="1" data-gs-x="0">
         <div class="grid-stack-item-content">
             <!--contents-->
         </div>
    </div>
    <div id="element3" class="grid-stack-item element" data-id="3" data-gs-width="1" data-gs-height="1" data-gs-min-width="1" data-gs-max-width="2" data-gs-max-height="1" data-gs-y="1" data-gs-x="1">
         <div class="grid-stack-item-content">
             <!--contents-->
         </div>
    </div>
</div>

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์˜ ์ƒ์œ„ ์œ„์ ฏ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

function resizeNestedParentWidget(){
    var nestedParentWidget = $('#grid .grid-stack-item.nestedblock');
    var nestedGridHeight = parseInt($('#gridNested').attr('data-gs-current-height'));
    var nestedParentWidgetCurrentHeight = parseInt($(nestedParentWidget).attr('data-gs-height'));
    if(nestedGridHeight < nestedParentWidgetCurrentHeight){
        grid.resize(nestedParentWidget,null,nestedGridHeight);
    }
}

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ์—์„œ ์œ„์ ฏ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

![gridstack1](https://cloud.githubusercontent.com/assets/15252130/25693244/9b3f9ac8-30a8-11e7-9621-1c13cfe5acdb.jpg)

var elem = $('#grid #element'+elemID);
gridNested.removeWidget(elem);

if($('#gridNested .grid-stack-item').length < 1){
    grid.removeWidget($('#grid .grid-stack-item.nestedblock'));
} else {
    resizeNestedParentWidget();
}

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์ง€? ๋‚ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๋ฒ„๊ทธ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ? :)

๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์—†์–ด๋„ GridStack 0.3.0์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹จ์ˆœํ•œ ๋‹จ์ผ ๊ทธ๋ฆฌ๋“œ, ์œ„์ ฏ์˜ ํŠน์ • ๊ตฌ์„ฑ์—์„œ๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ). @carlsch ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!).

๊ทธ๋Ÿฌ๋‚˜ GridStack 0.4.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ•ดํ‚น ์—†์ด๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ @PrincessOfSecret ๋ฐ @carlsch๋„ 0.4.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@radiolips ์ƒˆ ๋ฒ„์ „์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋ชจ๋“  6 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”, @PrincessOfSecret ! ์Šคํฌ๋ฆฐ์ƒท์ด ๋งค์šฐ ํฅ๋ฏธ๋กญ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค!

๊ทธ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ์˜ ์˜ˆ์™€ ํ•จ๊ป˜ jsfiddle์„ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ๋‚ด๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

jsfiddle์„ ๊ตฌ์„ฑํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ๊ทธ๊ฒƒ์€ ๊ฝค ๋ณต์žกํ•œ ๋ถ€๋ถ„์ด๊ณ  ๋‚˜๋Š” ํ•  ์ˆ˜ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์—
ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๋‹ค.
jsfiddle์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“ , ์ด ๋ฌธ์ œ๊ฐ€ ํŠน์ •ํ•œ
๋‚ด๊ฐ€ ์„ค๋ช…ํ–ˆ๋˜ ๊ฒฝ์šฐ. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
์ „์ฒด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜์ง€๋งŒ ๋ฌผ๋ก 
ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ณ  ์ด ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ๊ธฐ ์กฐ์ •์„ ํ•˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€๋Š” ์–ด๋–ป๊ฒŒ ๋“  ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋‹ค
๋ฌด์—‡์ด ๊ทธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ์œ„์ ฏ์„ ์œ„ํ•œ ๊ณต๊ฐ„์ด ์ด์ƒํ•˜๋‹ค.
๋ฉ”์ธ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ ์ง€๋˜๊ณ  x ์œ„์น˜๋„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์œ„์ ฏ์— ๋Œ€ํ•ด y ์œ„์น˜๋งŒ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒํ•˜๋‹ค
์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ์ธ๊ฐ€
ํฌ๊ธฐ ์กฐ์ •์œผ๋กœ ์ธํ•ด ์ผ๋ถ€ ์˜ต์…˜์ด๋‚˜ ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ์œ„์น˜ ์ง€์ •? ๋‚˜๋„ ๋‹น์‹ ์˜ ์ฝ”๋“œ์— ๋›ฐ์–ด๋“ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค
๋งŽ์ด, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹จ์ง€ ์ถ”์ธกํ•˜๊ณ ์žˆ๋‹ค.

์–ด์จŒ๋“  ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  1. ๋งˆ์ง€. 6. 22:08 ezt รญrta ("radiolips" [email protected] ):

์•ˆ๋…•ํ•˜์„ธ์š”, @PrincessOfSecret https://github.com/PrincessOfSecret ! ๋‹น์‹ ์˜
์Šคํฌ๋ฆฐ์ƒท์€ ๋งค์šฐ ํฅ๋ฏธ๋กญ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค!

๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋ฌธ์ œ์˜ ์˜ˆ๋ฅผ ๋“ค์–ด jsfiddle? ๊ทธ๊ฒŒ ๋‚ด๊ฐ€ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด์•ผ
๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/troolee/gridstack.js/issues/655#issuecomment-299663059 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AOi6okg0mTgUbBVB_pPSTYmi2UT3HSYmks5r3NM_gaJpZM4NQTuU
.

์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹ค๋ฅธ ์–ธ์–ด๊ฐ€ gridstack์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. :). ์ œ๊ฐ€ ํ™•์‹คํžˆ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, dylan์—๊ฒŒ ์ง์ ‘ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์‹œ๋ ค๋ฉด. [email protected] , ๊ท€ํ•˜์˜ ์ฝ”๋“œ๋ฅผ ๋” ์ง์ ‘ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€๋„ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค! ํ˜ธํ…”์šฉ์ธ๋“ฏ?

๋‚˜๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์ „์— ์š”์†Œ๋ฅผ ์ด๋™ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
grid.move($elem, 0, 0);
grid.removeWidget($elem);

@carlsch ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํŠธ๋ฆญ์œผ๋กœ ๋‚ด ๋ฌธ์ œ๋„ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :)

์ค‘์ฒฉ ๊ทธ๋ฆฌ๋“œ๊ฐ€ ์—†์–ด๋„ GridStack 0.3.0์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(๋‹จ์ˆœํ•œ ๋‹จ์ผ ๊ทธ๋ฆฌ๋“œ, ์œ„์ ฏ์˜ ํŠน์ • ๊ตฌ์„ฑ์—์„œ๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ). @carlsch ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!).

๊ทธ๋Ÿฌ๋‚˜ GridStack 0.4.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ•ดํ‚น ์—†์ด๋„ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ @PrincessOfSecret ๋ฐ @carlsch๋„ 0.4.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@radiolips ์ƒˆ ๋ฒ„์ „์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰