我正在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()只是将你的处理程序添加到队列中,而不是完全替换已存在的那些......
答案 0 :(得分:0)
另一个脚本通过执行全局解除绑定来劫持jQuery(窗口).resize()队列,如下所示:jQuery( window ).unbind( 'resize' )
。
正是出于这个原因,这不是一个好习惯。解决方案:如果绝对必须取消绑定处理程序,请将处理程序移出匿名函数并移入命名空间函数。然后,在您的命名空间上下文中,jQuery( window ).unbind( 'resize', yourFunction )