为什么jQuery会重启事件两次?

Mar*_*own 23 javascript jquery

我只是注意到,只要调整浏览器窗口大小,jquery resize事件就会触发两次.我找不到任何将此列为默认行为的文档.我已经使用jQuery 1.4和1.5在最新版本的Chrome和Firefox中对此进行了测试.

有没有人看到这种行为?它有具体原因吗?

更新:如果我单击浏览器窗口上的最大化按钮一次,就会发生这种情况.我知道如果我手动将窗口拖动到不同的大小,事件将被多次触发,但最大化按钮不应该是这种情况.

使用的代码测试如下.浏览器调整大小的文本输出两次:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
</head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
<script type="text/javascript">
    $(window).resize(function(){
        console.log('Browser Resized');
    });
</script>
<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

jn_*_*pdx 11

JQuery:只有在完成大小调整后才能调用RESIZE事件?

显示至少其他人遇到此问题.在1.3.2中,由于事件系统的某些内容,它被列为bug:http://benalman.com/code/projects/jquery-resize/docs/files/jquery-ba-resize-js.html


h--*_*--n 10

这不是jQuery的问题.这取决于浏览器的实现.浏览器决定何时触发'调整大小'.您可以使用window.onresize = function(){...}进行测试.它会是一样的.与jQuery无关.我测试了Win7 chrome,它被激发了两次,而在Win7 opera/safari中,它被解雇了一次.

  • 你是怎么测试的?我的是Opera 11.52,Win7,我通过切换最大化按钮调整窗口大小.它也只在Safari 5.11中调用过一次.使用Mac OS 10,safari,单击最大化按钮时会多次激活resize事件(远远超过2).这是一个实施问题.浏览器决定何时触发'调整大小'.你可以使用window.onresize = function(){...}.它是一样的.与jQuery没什么关系:) (2认同)