単純な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
、最後の反復がスキップされます。何か案は?