是另一个脚本劫持jQuery(窗口).resize()?

时间:2013-08-22 15:24:21

标签: jquery wordpress events resize window-resize

我正在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 +主题安装的上下文中执行的,因此当this jsfiddle按预期完美地工作时,肯定会有其他的东西在播放。

我如何继续(没有系统地禁用其他脚本)来弄清楚什么是劫持jQuery.resize()。而且,你怎么能劫持jQuery.resize()?我原本以为调用jQuery.resize()只是将你的处理程序添加到队列中,而不是完全替换已存在的那些......

1 个答案:

答案 0 :(得分:0)

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

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