Javascript 调整绑定后未触发的事件大小
我在jQuery上使用bind onJavascript 调整绑定后未触发的事件大小,javascript,jquery,Javascript,Jquery,我在jQuery上使用bind onbind来单击并调整具有唯一命名空间的侦听器的大小,这样我就可以安全地解除它们的绑定 按click时,它将记录“鼠标单击”消息 但是当改变窗口大小时,什么都不会发生 class MyView { constructor() { $(window.document).on('click.myView', this._onDocumentClick.bind(this)); $(window.document).on('re
bind
来单击并调整具有唯一命名空间的侦听器的大小,这样我就可以安全地解除它们的绑定
按click时,它将记录“鼠标单击”消息
但是当改变窗口大小时,什么都不会发生
class MyView {
constructor() {
$(window.document).on('click.myView', this._onDocumentClick.bind(this));
$(window.document).on('resize.myView', this._onDocumentResize.bind(this));
$('#clean').on('click', this._cleanup.bind(this));
}
_cleanup() {
$(window.document).unbind('resize.myView');
$(window.document).unbind('click.myView');
}
_onDocumentResize() {
console.log('Window Resized'); //Not reaching here
}
_onDocumentClick() {
console.log('Mouse Clicked'); //OK
}
}
你知道
resize
和click
事件有什么区别吗?这是因为resize
事件是由窗口
对象触发的,而不是窗口。文档
对象:)因此,这应该可以工作:
$(window).bind('resize.myView', this._onWindowResize.bind(this));
p/s:在初始事件处理程序绑定中,您似乎已交换回调和事件,即resize
触发私有单击方法,反之亦然
更好的是:不要再使用.bind()
,jQuery的新版本建议使用.on()
,即:
$(window).on('resize.myView', this._onWindowResize.bind(this));
请显示触发事件的代码。很简单:new MyView();