jquery下div 的resize事件示例代码

  这是某位大神写的jquery下div 的resize事件。

  

复制代码 代码如下:

  //resize of div

  (function($, h, c) {

  var a = $([]),

  e = $.resize = $.extend($.resize, {}),

  i,

  k = "setTimeout",

  j = "resize",

  d = j + "-special-event",

  b = "delay",

  f = "throttleWindow";

  e[b] = 250;

  e[f] = true;

  $.event.special[j] = {

  setup: function() {

  if (!e[f] && this[k]) {

  return false;

  }

  var l = $(this);

  a = a.add(l);

  $.data(this, d, {

  w: l.width(),

  h: l.height()

  });

  if (a.length === 1) {

  g();

  }

  },

  teardown: function() {

  if (!e[f] && this[k]) {

  return false;

  }

  var l = $(this);

  a = a.not(l);

  l.removeData(d);

  if (!a.length) {

  clearTimeout(i);

  }

  },

  add: function(l) {

  if (!e[f] && this[k]) {

  return false;

  }

  var n;

  function m(s, o, p) {

  var q = $(this),

  r = $.data(this, d);

  r.w = o !== c ? o: q.width();

  r.h = p !== c ? p: q.height();

  n.apply(this, arguments);

  }

  if ($.isFunction(l)) {

  n = l;

  return m;

  } else {

  n = l.handler;

  l.handler = m;

  }

  }

  };

  function g() {

  i = h[k](function() {

  a.each(function() {

  var n = $(this),

  m = n.width(),

  l = n.height(),

  o = $.data(this, d);

  if (m !== o.w || l !== o.h) {

  n.trigger(j, [o.w = m, o.h = l]);

  }

  });

  g();

  },

  e[b]);

  }

  })(jQuery, this);

  这样就可以 $('div').resize(fucntion(){ .. }); 了