0

*更新 *:这里的演示: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 中删除省略号?

4

1 回答 1

3

我没有看到直接的方法来修复它,但你可能会使用 hack ..

将原始文本存储为数据

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

然后用它来反转内容

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