使用 jQuery dotdotdot插件,当有很多文本要显示时,我希望同时拥有更多和更少按钮来显示和隐藏 a 的全部内容。<div>
“更多”按钮工作得很好,但我还没有想出一种方法来恢复<div>
它的原始显示。请注意,这不仅仅是关于如何使用 dotdotdot 来扩展截断的字符串,因为它包含了 Less 按钮重新截断长字符串。
这是我的代码:
$(function() {
$("div.ellipsis-text").dotdotdot({
after: 'a.more',
callback: dotdotdotCallback
});
$("div.ellipsis-text").find("a").click(function() {
if ($(this).text() == "More") {
var div = $(this).closest('div.ellipsis-text');
div.trigger('destroy').find('a.more').hide();
div.css('max-height', '');
$("a.less", div).show();
}
else {
$(this).text("More");
$(this).closest('div.ellipsis-text').css("max-height", "50px").dotdotdot({ after: "a", callback: dotdotdotCallback });
}
});
function dotdotdotCallback(isTruncated, originalContent) {
if (!isTruncated) {
$("a", this).remove();
}
}
});
似乎 ' 的锚标记的click
事件处理程序已被删除,单击更多按钮<div>
后我永远无法访问事件处理程序。
找到的解决方案:
更新代码:
$(function() {
$("div.ellipsis-text").dotdotdot({
after: 'a.more',
callback: dotdotdotCallback
});
$("div.ellipsis-text").on('click','a',function() {
if ($(this).text() == "More") {
var div = $(this).closest('div.ellipsis-text');
div.trigger('destroy').find('a.more').hide();
div.css('max-height', '');
$("a.less", div).show();
}
else {
$(this).hide();
$(this).closest('div.ellipsis-text').css("max-height", "50px").dotdotdot({ after: "a.more", callback: dotdotdotCallback });
}
});
function dotdotdotCallback(isTruncated, originalContent) {
if (!isTruncated) {
$("a", this).remove();
}
}
});
多谢你们!