jquery.dotdotdot部分没有显示出来

时间:2015-04-08 06:28:20

标签: jquery dotdotdot

我正在使用jquery.dotdotdot为文本部分创建更多/更少的链接。对于我有多个p标签的部分,文本不显示。不太清楚问题是什么。我把我的代码包含在下面的小提琴中。

我感谢任何帮助! 谢谢!

View Full Code Here

$(function () {
    var addLink = $('.securetext');
        addLink.append('<span class="readmore trigger-js">&nbsp;<a >Read more</a></span>');
        for (i = 0; i < addLink.length; i++) {
            if ($(addLink[i]).children("p").length > 0) {
                $(addLink[i]).children("p").last().append('<span class="readless trigger-js">&nbsp;<a >Read less</a></span>');
            } else {
                $(addLink[i]).append('<span class="readless trigger-js">&nbsp;<a >Read less</a></span>');
            }
        }
        truncateIfNeeded(); // Initialize ellipsis
    });

var truncateIfNeeded = function (jqueryTag) {
    var $selectionToTruncate = jqueryTag || $('.securetext');

    $selectionToTruncate.dotdotdot({
        ellipsis: '... ',
        watch: true,
        //wrap    : 'letter',
        height: 20 * 3, // max number of lines
        after: '.readmore',
        callback: function (isTruncated, orgContent) {
            var $currentReadMore = $(this).find('.readmore');
            var $currentReadLess = $(this).find('.readless');

            if (isTruncated) {
                $(this).addClass('securetext--is-truncated');
                $(this).removeClass('securetext--is-not-truncated');
            }
            bindReadMore(); // bind click on "read more"
        }
    });
};

1 个答案:

答案 0 :(得分:0)

问题在于用于截断的算法。

在第一次迭代中,Read More...链接在段落之后添加(恰好是3行长)。这意味着调用了截断逻辑。

在第二次迭代中,Read More...被添加到段落中。整个事情然后适合3行,所以删除。这显然是一个错误。

描述GitHub was closed as wontfix上的错误的问题。

This pull request提供了部分修复,但在段落之间截断元素的情况下,它不会显示省略号。 (不过,阅读更多链接会出现。)