我有一个关于修剪段落并在同位素内每个修剪段落的末尾添加省略号的问题。同位素的含量。我们也在使用无限滚动。问题在于,省略号功能在页面加载时在DOM中已存在的内容上运行良好,但是从无限滚动加载新内容时,省略号功能将不适用于新段落。

我的解决方案是在函数上使用setInterval使其每秒运行一次,这绝招是可以接受的,它每次运行时都会向其添加更多的点点。我想做的是每次间隔运行时都能清空...。至少我认为这是一个答案。我只是不知道如何实现它。我的代码如下,任何建议将不胜感激:

var myVar = setInterval(function () {
    trim();
}, 500);

function trim() {
    var MORE = "...";
    $(".gallery .spotProfile p.trim-ellipsis").each(function () {
        var $ths = $(this),
            txt = $ths.text();

        // Clear the text
        $ths.text("");

        // First 100 chars
        $ths.append( $("<span>").text( txt.substr(0, 80) ) );

        // The rest
        $ths.append( $("<span>").text( txt.substr(80, txt.length) ).hide() );

        // More link
        $ths.append(
        $("<a class=trimmed>").text(MORE).click(function () {
            var $ths = $(this);
            $ths.prev().hide();
            // more.empty();
            $ths.text(MORE);
        }));
    });
}

最佳答案

这很简单。

$(".gallery .spotProfile p.trim-ellipsis").each(function(){
    var $ths = $(this),
        txt = $ths.text();

    if( $ths.find('.trimmed')[0] ) return;


只需检查元素是否具有修剪的元素并返回(继续下一个循环)

关于javascript - 省略号 trim 段上的setInterval函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22099975/

10-13 02:25