74 lines
1.3 KiB
JavaScript
74 lines
1.3 KiB
JavaScript
(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); |