“.resize”事件不能与“offset”一起使用

时间:2012-04-03 08:06:54

标签: javascript jquery

有谁能告诉我这段代码有什么问题?它只会让我的浏览器崩溃,而这一切......

$(window).resize(function() {
    var p = $("#outer_wrap");
    var offset = p.offset();
    alert("left: " + offset.left + ", top: " + offset.top);
});

2 个答案:

答案 0 :(得分:2)

尽量不要使用alert功能,而是使用console.log(确保控制台窗口打开),这对我有用。这可能是由跨浏览器处理resize事件引起的(某些浏览器会在窗口调整大小时不断发送事件。

来自jQuery

  

调整大小处理程序中的代码绝不应该依赖于调用处理程序的次数。根据实施情况,调整大小事件可以在调整大小正在进行时连续发送(在Internet Explorer和基于WebKit的浏览器(如Safari和Chrome)中的典型行为),或者仅在调整大小操作结束时发送一次(典型行为在其他一些浏览器,如Opera)。

答案 1 :(得分:0)

一般来说,代码看起来很好,我想它会引发你的问题,因为它会解雇那些事件。

这是一个示例,显示没有警报,但以不同的方式输出结果,它不应该崩溃。

http://jsfiddle.net/TZfeK/

您还可以查看该事件被触发的次数。