在Angular中将一个DIV元素移入另一个

时间:2018-10-20 10:05:09

标签: jquery angular angular6 angular7

我正在使用Angular中的 Jquery 代码,我想将一个DIV元素移入另一个  这是我的代码

.ts文件

moveButton(elem) {
  alert('hello' + elem);
  if ( $(elem).parent().attr('id') === 'oneDiv' ) {
    alert('hello' + elem);
    $(elem).detach().appendTo('#anotherDiv');

  } else {

    $(elem).detach().appendTo('#oneDiv');
  }
}

.html文件

<div id="oneDiv">   
  <button id="btnDefault" class='btn123' (click)='moveButton(this)' type='button'> Button 1  </button>
  <button id="btnPrimary" class='btn123' (click)='moveButton(this)' type='button' > Button 2 </button>
  <button id="btnDanger" class='btn123' (click)='moveButton(this)' type='button' > Button 3 </button>
</div> 
<div id="anotherDiv"> </div>

但是我的代码不起作用可能是因为detach(),parent(),attr() 不工作 。

2 个答案:

答案 0 :(得分:0)

我不是角度专家,但是您在函数内的jquery代码对我来说很好用..您的问题可能在于函数与(click)='moveButton(this)'之间的关系

这是没有功能的jQuery 的工作方式

$(document).ready(function(){
  $(document).on('click' , '.btn123' , function(){
    var elem = $(this);
    if ( $(elem).parent().attr('id') === 'oneDiv' ) {
      $(elem).detach().appendTo('#anotherDiv');
    } else {
      $(elem).detach().appendTo('#oneDiv');
    }
  });
});
#oneDiv{
  background : red;
}
#anotherDiv{
  background : blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="oneDiv">   
  <button id="btnDefault" class='btn123' type='button'> Button 1  </button>
  <button id="btnPrimary" class='btn123' type='button' > Button 2 </button>
  <button id="btnDanger" class='btn123' type='button' > Button 3 </button>
</div> 
<div id="anotherDiv"> </div>

答案 1 :(得分:0)

您不需要在同一级别上使用detach()appendTo(),只需使用appendTo()函数即可。

我知道您想在AngularJS中执行此操作,但是您可以完全在jQuery中执行此操作,请检查以下代码:

function moveButton(elem) {

  if ( $(elem).parent().attr('id') == 'oneDiv' ) {
    $(elem).appendTo('#anotherDiv');
  } else {
    $(elem).appendTo('#oneDiv');
  }
}
#oneDiv{
border:solid 2px blue;
padding:20px
}


#anotherDiv{
border:solid 2px orange;
padding:20px;
margin-top:10px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="oneDiv">   
  <button id="btnDefault" class='btn123' onclick='moveButton(this)' type='button'> Button 1  </button>
  <button id="btnPrimary" class='btn123' onclick='moveButton(this)' type='button' > Button 2 </button>
  <button id="btnDanger" class='btn123' onclick='moveButton(this)' type='button' > Button 3 </button>
</div> 
<div id="anotherDiv"> </div>