0

* UPDATE * : デモはこちら: http://jsfiddle.net/cEepx/

折り返しの前にテキスト行の末尾に省略記号を追加する次のコードがあります。

(function (e) {
    e.fn.ellipsis = function (t) {
        var n = {
            row: 1,
            "char": "..."
        };
        return t = e.extend(n, t), this.each(function () {
            var n = e(this),
                r = n.text(),
                i = n.height();
            n.text("a");
            var s = n.height(),
                o = s * t.row;
            if (i <= o) {
                n.text(r);
                return
            }
            var u = 1,
                a = r.length;
            while (u < a) {
                var f = Math.ceil((u + a) / 2);
                n.text(r.slice(0, f) + t["char"]), n.height() <= o ? u = f : a = f - 1
            }
            n.text(r.slice(0, u) + t["char"])
        }), this
    }
})(jQuery);

次のように単純に適用されます。

$("div.mydiv").ellipsis();

省略記号が追加されたら、mydiv から省略記号を削除する 2 番目の関数を追加するように変更するにはどうすればよいですか?

4

1 に答える 1

3

それを修正する直接的な方法はわかりませんが、おそらくハックを使用できます..

原文をデータとして保存

$("div.mydiv").each(function(){
    $(this).data('origtext', $(this).text())
}).ellipsis();

次に、それを使用してコンテンツを逆にします

$("div.mydiv").text(function(){
    return $(this.data('origtext'))
})
于 2013-08-05T04:14:02.897 に答える