窗口调整大小功能运行两次

时间:2015-05-19 06:05:15

标签: javascript jquery

请在下面找到我的代码:

module AttributePermitter
  # survey_attributes base method found in surveyor gem.
  # surveyor_gui gem override's survey_attributes method.
  # We extend method to include our parameters.  
  # More Details http://blog.jayfields.com/2008/04/alternatives-for-redefining-methods.html
  def survey_attributes
    super + [:mission_id]
  end

  def question_attributes
    super
  end

  def question_group_attributes
    super
  end

  def answer_attributes
    super
  end

end   

每当窗口调整大小时,我都会获得此警报()运行两次。为什么呢?

1 个答案:

答案 0 :(得分:2)

它不仅仅会发射两次,当窗口调整大小时会发射任意次。当调整大小“完成”时,Firefox曾经只触发调整大小事件,但现在它会在调整大小期间触发多个调整大小事件,就像Chrome一直这样做。

因此,您需要使resize事件回调尽可能小,因为它会经常触发。您可以通过执行以下操作来限制它:

var resizeTimer = undefined;

$(document).ready(function() {
  $(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(function () {
      alert("Window resized");
    }, 200);
  });
});

如果在不到200毫秒内没有后续调整大小事件,则只会调用alert