클릭 패널 전후에 새 패널을 추가하는 방법

Andrus

보고서 디자이너 세부 사항 밴드에는 세부 사항 패널 바로 전후에 새 패널을 추가 할 수있는 밴드 추가 버튼이 있습니다.

$parentpanel = $this.parents(".designer-panel:first");

부모 패널을 찾는 데 사용되며 .prepend () / append ()는 새 패널을 추가하는 데 사용됩니다.

패널은 세부 정보 패널 하위 요소로 추가됩니다. 샘플 HTML의 그룹 머리글 및 바닥 글 패널과 같은 동일한 DOM 수준에서 세부 정보 패널 앞뒤에 패널을 추가하는 방법.

요소는 아마도 $parentpanel.parent()요소 앞뒤에 $parentpanel요소 목록에 추가되어야합니다 .

이것에 대한 jQuery에 선택기 또는 추가 명령이 있습니까?

$(function() {

  var startpos,
    selected = $([]),
    offset = {
      top: 0,
      left: 0
    };

  $('#designer-detail-addband').on('click', function() {
    var $this = $(this),
      $parentpanel = $this.parents(".designer-panel:first");

    $parentpanel.prepend('<div class="panel designer-panel">' +
      '<div class="panel-body designer-panel-body" style="height:1px">' +
      '</div>' +
      '<div class="bg-warning">' +
      '<div class="panel-footer"><i class="glyphicon glyphicon-chevron-up">' +
      '</i> Group heade {0}: <span id="band{0}_expr" contenteditable="true">"groupexpression"</span>' +
      '</div></div></div>');

    $parentpanel.append('<div class="panel designer-panel">' +
      '<div class="panel-body designer-panel-body" style="height:1px"></div>' +
      '<div class="bg-warning">' +
      '<div class="panel-footer"><i class="glyphicon glyphicon-chevron-up">' +
      '</i> Group footer {0}' +
      '</div></div></div>');

  });

  $(".designer-panel-body").droppable({
    accept: ".designer-field"
  });

  $(".designer-field").draggable({
    start: function(event, ui) {
      var $this = $(this);
      if ($this.hasClass("ui-selected")) {
        selected = $(".ui-selected").each(function() {
          var el = $(this);
          el.data("offset", el.offset());
        });
      } else {
        selected = $([]);
        $(".designer-field").removeClass("ui-selected");
      }
      offset = $this.offset();
    },

    drag: function(event, ui) {
      // drag all selected elements simultaneously
      var dt = ui.position.top - offset.top,
        dl = ui.position.left - offset.left;
      selected.not(this).each(function() {
        var $this = $(this);
        var elOffset = $this.data("offset");
        $this.css({
          top: elOffset.top + dt,
          left: elOffset.left + dl
        });
      });
    }
  });

  $(".panel-resizable").resizable({
    minWidth: "100%",
    maxWidth: "100%",
    minHeight: 1
  });
})
.panel-resizable {
  min-height: 1px;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.designer-field {
  border: 1px solid lightgray;
  white-space: pre;
  overflow: hidden;
  position: absolute;
}
.designer-panel-body {
  min-height: 1px;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.panel-footer {
  padding: 0;
}
.designer-panel,
.panel-body {
  margin: 0;
  padding: 0;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</head>

<body>
  <div class='panel designer-panel'>
    <div class='panel-body designer-panel-body panel-resizable' style='height:2cm'>

      <div class='designer-field' style='left:5px;top:6px;width:180px'>field 1 in group 1 header</div>

      <div class='designer-field' style='left:54px;top :36px;width:160px'>field 2 in group 1 header</div>
    </div>

    <div class='panel-footer'>Group 1 Header</div>
  </div>

  <div class='panel designer-panel'>
    <div class='panel-body panel-resizable' style='height:1cm'>
      <div class='designer-field' style='left:24px;top:2px;width:140px'>field in detail group</div>
    </div>
    <div class='panel-footer panel-primary'>Detail <a role="button" id="designer-detail-addband"> Add group</a>
    </div>
  </div>

  <div class='panel'>
    <div class='panel-body panel-resizable' style='height:1cm'>

      <div class='designer-field' style='left:44px;top:2px;width:140px'>field in group 1 footer</div>
    </div>
    <div class='panel-footer panel-warning'>Group 1 Footer</div>
  </div>

유리 세 메니 욱

jQuery의 before , after 함수를 사용해보십시오 . 또는 insertBefore , insertAfter

또한 사용할 수 있습니다

$this.closest(".designer-panel");

대신에

$this.parents(".designer-panel:first");

가장 가까운 보기

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

패널을 클릭하여 내선 js 패널에 항목을 추가하는 방법은 무엇입니까?

분류에서Dev

버튼 클릭시 새 패널을 만드는 방법은 무엇입니까?

분류에서Dev

클래식 그놈 패널에 패널 애플릿을 추가하는 방법은 무엇입니까?

분류에서Dev

netbean java의 jframe에있는 다른 패널의 다른 패널에서 버튼을 클릭하여 패널을 표시하는 방법

분류에서Dev

버튼 클릭시 검도 패널 바에 항목을 추가하는 방법이 있습니까?

분류에서Dev

탭 패널에서 sencha 동적 탭을 추가하고 탭 패널에 목록을 추가하는 방법

분류에서Dev

버튼 클릭시 패널을 여는 방법

분류에서Dev

Jquery 오른쪽 패널을 클릭하면 왼쪽 패널에 값 표시

분류에서Dev

Extjs 탭에 패널을 추가하는 방법

분류에서Dev

Wpf TabControl에 Windows Form 패널을 추가하는 방법

분류에서Dev

JFrame에 패널을 추가하는 방법

분류에서Dev

jquery가 Bootstrap v3의 패널 내부에 패널을 추가하도록하는 방법

분류에서Dev

Magento 관리자 패널의 제품에서 새 탭을 만드는 방법

분류에서Dev

모든 패널에 jQuery의 클래스를 추가하는 방법

분류에서Dev

패널에서 테이블 레이아웃 패널에 컨트롤을 동적으로 추가하는 방법

분류에서Dev

패널에 패널 추가

분류에서Dev

클릭시 asp.net 양식 (패널)을로드 / 표시하는 방법

분류에서Dev

LXDE의 패널에 'RAM 사용량'아이콘을 추가하는 방법

분류에서Dev

LXDE의 패널에 'RAM 사용량'아이콘을 추가하는 방법

분류에서Dev

탭 패널에 캐 러셀을 추가하는 방법-Sencha Touch 2

분류에서Dev

Highcharts : 차트 영역 측면에 텍스트 패널을 추가하는 방법

분류에서Dev

JFrame에 여러 패널을 추가하는 방법은 무엇입니까?

분류에서Dev

jframe에서 gridpaglayout 패널을 전환하는 방법

분류에서Dev

16.04에서 * 패널에 추가 *하는 방법?

분류에서Dev

패널에 웹 페이지를 추가하는 방법

분류에서Dev

여러 패널에서 클래스를 사용하는 방법

분류에서Dev

기존 컨트롤 아래에 새 패널을 배치하는 방법은 무엇입니까?

분류에서Dev

Java의 다른 클래스에서 다른 패널을 사용하여 패널의 내용을 변경하는 방법

분류에서Dev

패널에 레이블을 동적으로 추가해도 패널이 새로 고쳐지지 않습니다.

Related 관련 기사

  1. 1

    패널을 클릭하여 내선 js 패널에 항목을 추가하는 방법은 무엇입니까?

  2. 2

    버튼 클릭시 새 패널을 만드는 방법은 무엇입니까?

  3. 3

    클래식 그놈 패널에 패널 애플릿을 추가하는 방법은 무엇입니까?

  4. 4

    netbean java의 jframe에있는 다른 패널의 다른 패널에서 버튼을 클릭하여 패널을 표시하는 방법

  5. 5

    버튼 클릭시 검도 패널 바에 항목을 추가하는 방법이 있습니까?

  6. 6

    탭 패널에서 sencha 동적 탭을 추가하고 탭 패널에 목록을 추가하는 방법

  7. 7

    버튼 클릭시 패널을 여는 방법

  8. 8

    Jquery 오른쪽 패널을 클릭하면 왼쪽 패널에 값 표시

  9. 9

    Extjs 탭에 패널을 추가하는 방법

  10. 10

    Wpf TabControl에 Windows Form 패널을 추가하는 방법

  11. 11

    JFrame에 패널을 추가하는 방법

  12. 12

    jquery가 Bootstrap v3의 패널 내부에 패널을 추가하도록하는 방법

  13. 13

    Magento 관리자 패널의 제품에서 새 탭을 만드는 방법

  14. 14

    모든 패널에 jQuery의 클래스를 추가하는 방법

  15. 15

    패널에서 테이블 레이아웃 패널에 컨트롤을 동적으로 추가하는 방법

  16. 16

    패널에 패널 추가

  17. 17

    클릭시 asp.net 양식 (패널)을로드 / 표시하는 방법

  18. 18

    LXDE의 패널에 'RAM 사용량'아이콘을 추가하는 방법

  19. 19

    LXDE의 패널에 'RAM 사용량'아이콘을 추가하는 방법

  20. 20

    탭 패널에 캐 러셀을 추가하는 방법-Sencha Touch 2

  21. 21

    Highcharts : 차트 영역 측면에 텍스트 패널을 추가하는 방법

  22. 22

    JFrame에 여러 패널을 추가하는 방법은 무엇입니까?

  23. 23

    jframe에서 gridpaglayout 패널을 전환하는 방법

  24. 24

    16.04에서 * 패널에 추가 *하는 방법?

  25. 25

    패널에 웹 페이지를 추가하는 방법

  26. 26

    여러 패널에서 클래스를 사용하는 방법

  27. 27

    기존 컨트롤 아래에 새 패널을 배치하는 방법은 무엇입니까?

  28. 28

    Java의 다른 클래스에서 다른 패널을 사용하여 패널의 내용을 변경하는 방법

  29. 29

    패널에 레이블을 동적으로 추가해도 패널이 새로 고쳐지지 않습니다.

뜨겁다태그

보관