0

例如,我有一个表中的 3 行。每一行都从数据库中获取其内容。默认情况下,当行折叠时,文本应缩短 -

trs[i].innerText = trs[i].innerText.substring(0,25) + '...';

当用户单击 div 时,它会展开,如果再次单击,则会折叠。

if(tr.style.height == "150px")
        {
             tr.style.height = "20px";
        }
    else {
        tr.style.height = "150px";
    }

到目前为止,一切都很好,但我希望只有在 div 折叠时才能缩短文本。使用我的解决方案,当页面加载时,文本会缩短,但当行展开时,它会保持缩短。我怎样才能解决这个问题?我只能想到行扩展以调用返回原始数据的 AJAX 函数时,但我认为这不是最好的方法。提前致谢。

4

1 回答 1

0

首先,您必须在缩短之前存储全文。

trs[i].fullText = trs[i].innerText;
trs[i].innerText = trs[i].innerText.substring(0,25) + '...';

然后你可以在处理程序中恢复它:

tr.innerText = tr.fullText;
tr.style.height = "150px";

这是一个jsFiddle。我正在使用 jQuery 来选择元素,但无论如何你已经有了正确的 tr。如果您使用的是 jQuery,您还可以使用$(tr).data("fullText", $(tr).text())它来避免一些轻微的内存泄漏,并在旧版本的 Internet Explorer 中向 DOM 元素添加属性。

于 2012-12-03T11:02:00.493 回答