(JavaScript和HTML)将项目从一个列表移动到另一个列表

时间:2019-07-17 02:17:59

标签: javascript html css google-chrome-extension

我正在创建一个待办事项列表,允许用户添加和删除任务。我还希望允许用户将任何特定任务的副本添加到其他列表中。例如,我可以单击一个按钮,它将创建从(例如列表A)到(例如列表B)的副本(例如任务A)。

我已经尝试过这样做,因此如果您单击按钮,它将在列表中添加一个新类,但是,我不确定是否有更好的方法来实现这一点。

$(() => {
  $('input').on('keypress', function(e) {
    if (e.keyCode == 13) {
      const newTask = $(this).val();
      if (newTask) {
        var li = $("<li><input type="
          checkbox " id="
          newtaskitem " class="
          right - margin "><label>test</label> <button type="
          button " class="
          delete "></button> <button type="
          button " class="
          addtolist2 "></button></li>");
        $('#tasksUL').append(li);
        $(this).val("");
        localStorage.setItem("newtaskUL", value);
      }
    }
  });
  $(document).on("click", ".delete", function() {
    $(this).parent().remove();
  });
  $(".addtolist2").on("click", function() {
    $(".addtolist2").css("opacity", 1.5 - $(".addtolist2").css("opacity"));
    $(".addtolist2").toggleClass("list2UL");
  });
});
label[for="list1menu"] {
  display: none;
  text-decoration: none;
  position: absolute;
  bottom: 250px;
  left: 250px;
  width: 680px;
  height: 540px;
}

input[name="newtask"] {
  text-decoration: none;
  position: absolute;
  top: 100px;
  left: 50px;
  width: 418px;
  word-wrap: break-word;
  font-size: 20px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

#togglelist1:checked~label[for="list1menu"] {
  text-decoration: none;
  position: absolute;
  display: block;
  bottom: 55px;
  left: 9px;
  width: 500px;
  height: 860px;
}

label[for="list2menu"] {
  display: none;
  text-decoration: none;
  position: absolute;
  bottom: 250px;
  left: 250px;
  width: 680px;
  height: 540px;
}

ul[class='list2UL'] {
  margin: 0;
  padding: 0;
  position: absolute;
  top: 142px;
  left: 50px;
  list-style-type: none;
  font-size: 20px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  word-wrap: break-word;
  width: 355px;
}

#togglelist2:checked~label[for="list2menu"] {
  text-decoration: none;
  position: absolute;
  display: block;
  bottom: 55px;
  left: 9px;
  width: 500px;
  height: 860px;
}

#togglelist2:checked~.list2UL {
  position: absolute;
  font-size: 30px;
  font-weight: 300;
  left: 85px;
  top: 5px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

#togglecountdown:checked~ul[class='list2UL'] {
  display: block;
  position: absolute;
  font-size: 30px;
  font-weight: 300;
  left: 85px;
  top: 5px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
<input type='checkbox' id="togglelist1" class='list' />
<label for="list1menu">
            <input type="text" name="newtask" value="" spellcheck="false" placeholder="New Todo" id="newtask">
            <ul id="list1UL">
              <li><input type="checkbox" id="newtaskitem" class="right-margin"><label>test</label> <button type="button" class="deletetask"></button> <button type="button" class="addtolist2"></button></li>
</ul>
</label>


<input type='checkbox' id="togglelist2" class='list' />
<label for="list2menu">
            <ul id="list2UL">
              <li><input type="checkbox" id="newtaskitem" class="right-margin"><label>test</label> <button type="button" class="deletetask"></button></button>
</li>
</ul>
</label>
</div>

1 个答案:

答案 0 :(得分:0)

$(".addtolist2").on( "click", function() {
    $(".addtolist2").css("opacity", 1.5 - $(".addtolist2").css("opacity"));
    $(".addtolist2").toggleClass("list2UL");

    // clone checked elements
    $('#todolist1 input:checked').parent().clone().appendTo('#todolist2');
});

我没有办法测试它,但是应该可以。