0

我正在 Chrome 和 Firefox 中尝试以下代码,并且只有 NATIVE RESIZE 被记录:

window.onresize = function(){ console.log( "NATIVE RESIZE" ) }

jQuery(window).resize(function(){ console.log( "JQUERY RESIZE" ) });

jQuery.resize() 永远不会触发。当您调整浏览器窗口的大小时,window.onresize 几乎会不断触发(稍后我将实现去抖动)。

这不是在这个生态系统中运行的唯一 JavaScript - 这个脚本是在 WordPress + 主题安装的上下文中执行的,所以肯定还有其他东西在起作用,因为这个 jsfiddle可以按预期完美运行。

我如何才能继续(不系统地禁用其他脚本)来找出劫持 jQuery.resize() 的原因。而且,你怎么能劫持 jQuery.resize()?我会认为调用 jQuery.resize() 只是将您的处理程序添加到队列中,而不是完全替换已经存在的内容......

4

1 回答 1

0

另一个脚本通过执行全局取消绑定来劫持 jQuery( window ).resize() 队列,如下所示jQuery( window ).unbind( 'resize' )

正是因为这个原因,这不是一个好的做法。解决方案:如果您绝对必须取消绑定您的处理程序,请将您的处理程序移出匿名函数并进入命名空间函数。然后,在您的命名空间上下文中,jQuery( window ).unbind( 'resize', yourFunction )

于 2013-08-22T15:52:10.070 回答