Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调整绑定后未触发的事件大小_Javascript_Jquery - Fatal编程技术网

Javascript 调整绑定后未触发的事件大小

Javascript 调整绑定后未触发的事件大小,javascript,jquery,Javascript,Jquery,我在jQuery上使用bind onbind来单击并调整具有唯一命名空间的侦听器的大小,这样我就可以安全地解除它们的绑定 按click时,它将记录“鼠标单击”消息 但是当改变窗口大小时,什么都不会发生 class MyView { constructor() { $(window.document).on('click.myView', this._onDocumentClick.bind(this)); $(window.document).on('re

我在jQuery上使用bind on
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();