代码之家  ›  专栏  ›  技术社区  ›  Maniraj Murugan

删除已删除列表项的选项

  •  0
  • Maniraj Murugan  · 技术社区  · 6 年前

    HTML和Javascript 用于将项目从一个div拖放到另一个div。

    <div class="listArea">
       <h4> Drag and Drop list in Green Area: </h4>
       <ul class="unstyle">
          <li id="drag1" draggable="true" (dragstart)="drag($event)">
              i am list 1
          </li>
          <li id="drag2" draggable="true" (dragstart)="drag($event)">
              i am list 2 
          </li>
          <li id="drag3" draggable="true" (dragstart)="drag($event)">
              i am list 3
          </li>
          <li id="drag4" draggable="true" (dragstart)="drag($event)">
              i am list 4
          </li>
       </ul>
    </div>
    <div class="buildArea" id="div1" (drop)="drop($event)" (dragover)="allowDrop($event)">
       <h4> Drop Here </h4> 
    </div>
    

    Typescript包含以下内容:

      allowDrop(ev) {
        ev.preventDefault();
      }
    
      drag(ev) {
        ev.dataTransfer.setData("text", ev.target.id);
      }
    
      drop(ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.getData("text");
        ev.target.appendChild(document.getElementById(data).cloneNode(true));
      }
    

    stackblitz链接是, https://stackblitz.com/edit/angular-wyimor

    buildArea ,可以删除列表项,即我需要为每个已删除的项生成唯一的“删除”按钮,然后单击该按钮,则必须删除当前列表。

    从给定的 Demo 必须完成。 纯javascript 需要忽略jquery。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Akj    6 年前

    试试这样的:

    DEMO

      <div class="listArea">
        <h4> Drag and Drop list in Green Area: </h4>
        <ul class="unstyle">
            <li *ngFor="let li of List; let i = index" id="drag{{i}}" draggable="true" (dragstart)="drag($event, i) ">
                i am list {{li.name}}
            </li>
        </ul>
    </div>
    
    
        <div class="buildArea " id="div1 " (drop)="drop($event) " (dragover)="allowDrop($event) ">
            <h4> Drop Here </h4>
    
            <ul class="unstyle">
                <li *ngFor="let li of DraggedList; let i = index" id="dragged{{i}}">
                    <p>{{li.innerHTML}}</p>
                    <button (click)="deleteItem(i)" type="button"> X</button>
    
                </li>
            </ul>
        </div>
    

    电话号码:

    List: Array<any> = [
        { name: 1 },
        { name: 2 },
        { name: 3 },
        { name: 4 },
        { name: 5 },
      ]
      elId: number;
    
      DraggedList: Array<any> = [
    
      ]
    
      allowDrop(ev) {
        ev.preventDefault();
      }
    
      drag(ev, i) {
        this.elId = i;
        ev.dataTransfer.setData("text", ev.target.id);
      }
    
      drop(ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.getData("text");
        // ev.target.appendChild(document.getElementById(data).cloneNode(true));
        this.DraggedList.push(document.getElementById(data));
      }
    
      deleteItem(i) {
        if (i > -1) {
          this.DraggedList.splice(i, 1);
        }
      }