简单的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
,但它是一样的。
F5
刷新它正在跳过最后一次迭代。有什么想法吗?
答案 0 :(得分:1)
我很幸运地发现只有在用F5刷新页面时脚本才能正常工作,我找到了解决方案。 https://stackoverflow.com/a/8310308/1333512
要解决此问题,请使用:
$(window).load(function() {});
而不是:
$(document).ready(function() {});