2
簡單的while循環無法正常工作。 我寫了一個限制文本爲3行的腳本。這很簡單。我檢查元素(div)的高度是否高於3行(硬編碼的字體大小和行高),如果是,我刪除最後一個單詞並添加省略號。而我正在做這件事,而字符串很快就足以適應3條線。雖然循環無法正常工作 - 它有時會跳過
它是隨機工作,有時工作,有時不工作。如果不工作,我在第四行只有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
進行刷新,它將跳過上一次迭代。有任何想法嗎?
你知道你可以只用CSS做到這一點。 'div {overflow:hidden;身高:60px;文本溢出:省略號;白色空間:nowrap; }' – elclanrs 2012-08-16 11:03:37
它確實按預期工作(至少是一部分),我看你的問題是用3行代碼,結果有4個,這很奇怪。 – jackJoe 2012-08-16 11:11:28
如何在多行文本上使用'text-overflow:ellipsis'?它應該是跨瀏覽器的。 – enenen 2012-08-16 11:20:25