Class事件绑定和解除绑定

问题描述 投票:0回答:1

一切正常,除了我不知道如何取消绑定stop()中的事件。

class Resizable {
  go(drag_el, resize_el) {
    drag_el.addEventListener("mousedown", () => {
      window.addEventListener("mousemove", e => {
        this.resize(resize_el, e);
      });
      window.addEventListener("mouseup", () => {
        window.removeEventListener("mousemove", this.mousemove);
        window.removeEventListener("mouseup", () => {
          this.stop();
        });
      });
    });
  }

  resize(resize_el, e) {
    resize_el.style.width = e.clientX - resize_el.offsetLeft + "px";
  }

  stop() {
    window.removeEventListener("mousemove", this.resize, false);
    window.removeEventListener("mouseup", this.stop, false);
  }
}

let obj = new Resizable();
let drag_el = document.querySelector(".aside-resize");
let resize_el = document.querySelector("aside");

obj.go(drag_el, resize_el);

一些注意事项

  • 我更喜欢将类的内容保留在类中,而在其外部没有额外的var
  • 我也接受ES5和ES6。
  • 我已经读过我可以做window.mousemove.bind(() => { // Code });,但我没有做到这一点。
javascript class events bind addeventlistener
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.