向事件(如';window.resize';)添加javascript函数调用,而不是覆盖已有的调用

向事件(如';window.resize';)添加javascript函数调用,而不是覆盖已有的调用,javascript,jquery,events,Javascript,Jquery,Events,有没有办法告诉浏览器在“window.resize”等事件上运行附加java脚本函数,而不是覆盖已有的内容 使用jquery的 $(window).resize(<something>); $(窗口).resize(); 似乎取代了已经存在的东西。有没有办法让它做些额外的事情? 这是一种糟糕的设计/错误的方法吗?如果使用jQuery绑定所有事件处理程序,那么就不会破坏任何东西。jQuery支持同一事件的多个处理程序 但如果其他代码(不使用jQuery)绑定到该事件,则您将用语句覆

有没有办法告诉浏览器在“window.resize”等事件上运行附加java脚本函数,而不是覆盖已有的内容

使用jquery的

$(window).resize(<something>);
$(窗口).resize();
似乎取代了已经存在的东西。有没有办法让它做些额外的事情?
这是一种糟糕的设计/错误的方法吗?

如果使用jQuery绑定所有事件处理程序,那么就不会破坏任何东西。jQuery支持同一事件的多个处理程序


但如果其他代码(不使用jQuery)绑定到该事件,则您将用语句覆盖处理程序。解决方案是:始终使用jQuery进行事件绑定,或者尝试保存旧的处理程序(请参阅)。

如果使用jQuery绑定所有事件处理程序,则不会破坏任何内容。jQuery支持同一事件的多个处理程序


但如果其他代码(不使用jQuery)绑定到该事件,则您将用语句覆盖处理程序。解决方案是:始终使用jQuery进行事件绑定或尝试保存旧的处理程序(请参阅)。

我不认为jQuery会破坏其中的内容,但您可以将函数包装在单个函数中:

    // if a function already exists...
if( window.onresize ) {
    var prev_func = window.onresize;  // cache the old function

    window.onresize = function( event ) {  // new function for resize

        prev_func.call( window, event );  // call the old one, setting the
                                          //  context (for "strict mode") and 
                                          //  passing on the event object

        // call your code or function

    };
}
编辑:修复了使用
onresize
而不是
resize
的问题


EDIT2:错过了一个!修复。

我不认为jQuery会破坏现有功能,但您可以将函数封装在单个函数中:

    // if a function already exists...
if( window.onresize ) {
    var prev_func = window.onresize;  // cache the old function

    window.onresize = function( event ) {  // new function for resize

        prev_func.call( window, event );  // call the old one, setting the
                                          //  context (for "strict mode") and 
                                          //  passing on the event object

        // call your code or function

    };
}
编辑:修复了使用
onresize
而不是
resize
的问题

EDIT2:错过了一个!已修复。

请参见(IE 8及以下版本中):

请记住,这是纯JavaScript jQuery(以及几乎所有大型JS库)有一个方法来处理创建标准和IE处理程序,而无需编写每个标准和IE处理程序。不过,知道幕后发生了什么还是很好的。

参见(IE 8及以下版本):


请记住,这是纯JavaScript jQuery(以及几乎所有大型JS库)有一个方法来处理创建标准和IE处理程序,而无需编写每个标准和IE处理程序。不过,知道幕后发生了什么还是很好的。

jQuery和所有其他支持自定义事件的框架都将函数附加到元素的事件(或观察它)。然后,该函数将触发已为特定事件类型绑定(使用绑定)的所有函数


不会覆盖其他函数,并且您添加的函数不能被其他(坏的)javascript删除,除非它知道您函数的确切位置。

jQuery和所有其他支持自定义事件的框架将函数附加到元素的事件(或观察它)。然后,该函数将触发已为特定事件类型绑定(使用绑定)的所有函数

不会覆盖其他函数,并且您添加的函数不能被其他(坏的)javascript删除,除非它知道您函数的确切占用空间