【发布时间】:2011-11-15 15:43:39
【问题描述】:
我讨厌这样做。这是结束一个大项目的一小部分,我的头脑很紧张......
这是代码。它检查元素是否溢出并调整字体大小。它应该调整它的大小,直到它不溢出。循环的条件似乎被忽略了,浏览器冻结了......我觉得我错过了 jQuery 如何在这里工作的关键。
$.fn.fontBefitting = function() {
var _elm = $(this)[0];
var _hasScrollBar = false;
while ((_elm.clientHeight < _elm.scrollHeight) || (_elm.clientWidth < _elm.scrollWidth)) {
var fontSize = $(this).css('fontSize');
fontSize = parseInt(fontSize.substring(0,fontSize.length-2))*0.95;
$(this).css('fontSize',fontSize+'px');
}
}
提前致谢。
【问题讨论】:
-
'while' 循环在哪里?
-
没有while循环?这是矩阵吗?
-
哎呀,我把它作为条件发布了。已编辑...
-
“我曾经这样做过”是指将我认为我应该能够解决的问题倾倒在社区上。这是我觉得我应该知道的问题之一。
-
@Eric:实际上是
$(this)[0] !== this,因为当您尝试将 jQuery 对象发送到$()时,它不会将其双重包装,而是为您提供一个引用相同元素的新 jQuery 对象,所以$(this)[0] === this[0].
标签: javascript jquery loops while-loop