IE下resize无限触发问题。

行陌路 发布于 2013/10/11 19:54
阅读 707
收藏 2

【DevOps必读】产品经理与程序员之间如何破局?>>>

 大家帮忙看个问题,IE下,resize时给HTML元素添加一个class,会导致resize一直触发,导致IE浏览器崩溃。
演示地址: http://sandbox.runjs.cn/show/sxa2movn
这个在resize触发时在页面显示了resize....
使用IE浏览器都会出现这个问题。
请问这个问题是什么原因导致的,应该怎么解决?
加载中
0
XuMeijin
XuMeijin

(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);


override resize 试试看

行陌路
行陌路
果然可以,求这个代码未压缩的版本学习,谢谢。。
0
XuMeijin
XuMeijin
https://raw.github.com/cowboy/jquery-resize/v1.1/jquery.ba-resize.js
返回顶部
顶部