题解 | #移动控制#

移动控制

https://www.nowcoder.com/practice/84af7932f53f4bbeaa1fa079a138bb35

function bind() {
        document.onkeydown = (event) => {
          if (!event) return;
          var code = event.keyCode || "";
          if (!{ 37: 1, 38: 1, 39: 1, 40: 1 }[code]) return;
          event.preventDefault && event.preventDefault();
          //TODO: 请实现按键控制
          let current = document.querySelector("td[class='current']");
          let currentParent = current.parentNode;
          let Parent=currentParent.parentNode
          if (code === 39) {
            if (
              currentParent.children[currentParent.children.length - 1] ===
              current
            ) {
              current.classList.remove("current");
              currentParent.children[0].classList.add("current");
            } else {
              current.classList.remove("current");
              current.nextElementSibling.classList.add("current");
            }
          }
          if (code === 37) {
            if (currentParent.children[0] === current) {
              current.classList.remove("current");
              currentParent.children[
                currentParent.children.length - 1
              ].classList.add("current");
            } else {
              current.classList.remove("current");
              current.previousElementSibling.classList.add("current");
            }
          }
          if (code === 38) {
            let index = Array.from(currentParent.children).indexOf(current);
            if (Parent.children[0] === currentParent) {
              current.classList.remove("current");
              Parent.children[Parent.children.length-1].children[index].classList.add("current")
            } else {
              current.classList.remove("current");
              currentParent.previousElementSibling.children[index].classList.add("current");
            }
          }
          if (code === 40) {
            let index = Array.from(currentParent.children).indexOf(current);
            if (Parent.children[Parent.children.length-1] === currentParent) {
              current.classList.remove("current");
              Parent.children[0].children[index].classList.add("current")
            } else {
              current.classList.remove("current");
              currentParent.nextElementSibling.children[index].classList.add("current");
            }
          }
        };
      }

全部评论

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务