简单的 while 循环无法正常工作。我编写了一个脚本来将文本限制为 3 行。这很简单。我检查元素(div)的高度是否高于 3 行(硬编码的字体大小和行高),如果是,我删除最后一个单词并添加省略号。我正在这样做,而字符串很快就可以放在 3 行上。
它随机工作,有时有效,有时无效。如果不工作,我在第 4 行只有 1 个字。所以它只跳过最后一次迭代,而不是每次都跳过。
$('div.prod-description').each(function(){
var obj = $(this);
if(obj.height() > 60) { // line-height: 18px;
var ellipses = '...';
var new_text = null;
while(obj.height() > 60) {
new_text = obj.text().slice(0, obj.text().lastIndexOf(' '));
obj.text(new_text+ellipses);
}
}
});
我试图删除if statement
,我试过do while statement
但它是一样的。
编辑:我发现了问题!但不知道如何解决。如果我在浏览器的地址栏上按 Enter,或者我从菜单进入页面,它就可以正常工作。如果我刷新F5
它会跳过最后一次迭代。有任何想法吗?