清除监听器 remove EventListener

这种类型的监听器不知道改怎么移除,描述不清,欢迎帮助改善问题描述,方便别人搜索 :)

drawerButton.addEventListener(
    'click',this.drawerToggleHandler_.bind(this)
);

MaterialLayout.prototype.drawerToggleHandler_ = function(){
    this.drawer_.classList.toggle(this.CssClasses_.IS_DRAWER_OPEN);
};

代码链接

阅读 7.1k
4 个回答
var div = document.getElementById('div');
var listener = function (event) {
  /* do something here */
};
div.addEventListener('click', listener, false);
div.removeEventListener('click', listener, false);

取消监听时要指定要取消的事件句柄。

新手上路,请多包涵

如下代码,new一个新的MaterialLayout对象,得到它的drawerButton,然后取消事件绑定

var materialLayout = new MaterialLayout(你要传入的element);
var drawerButton = materialLayout.element_.querySelector('.' + materialLayout.CssClasses_.DRAWER_BTN);
drawerButton.removeEventListener(
    'click',materialLayout.drawerToggleHandler_.bind(materialLayout)
);
var boundEvnetListener=this.drawerToggleHandler_.bind(this);
drawerButton.addEventListener('click', boundEvnetListener);
drawerButton.removeEventListener('click', boundEvnetListener);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题