【发布时间】:2016-03-24 06:57:21
【问题描述】:
我一直在考虑制作一个角度指令,如果它有超过一定数量的字符(例如 115 个),它将缩短段落或 div。
我找不到任何对我有用的东西,我见过 http://dotdotdot.frebsite.nl/ 并且对某些人有用,但我正在尝试使用 angular 指令而不是 JQuery 来实现。
如果有人可以提供任何帮助,将不胜感激,我基本上没有想法。
这是我的视图设置方式:
<div class="Description"
<div class="Content">
<div data-ng-bind-html="item.Description"></div>
</div>
我最初是通过像这样将它作为 jquery 来使它工作的,但不建议只使用 jquery 和 angular
$(function () {
var maxHeight = 115;
var moretext = Localization.Shared.InstitutionProfileStrings.ShowMore();
var lesstext = Localization.Shared.InstitutionProfileStrings.ShowLess();
$('.__Description').each(function () {
var content = $(this).find(".__Content");
var anchor = $(this).find(".morelink");
if ($(content).height() > maxHeight) {
$(this).addClass("less");
$(anchor).html(moretext);
$(anchor).show();
}
else {
$(anchor).hide();
}
});
$(".morelink").click(function (e) {
e.preventDefault();
var parent = this.parentElement;
if ($(parent).hasClass("less")) {
$(parent).removeClass("less");
$(this).html(lesstext);
$(parent).addClass("more");
}
else if ($(parent).hasClass("more")) {
$(parent).removeClass("more");
$(this).html(moretext);
$(parent).addClass("less");
}
return false;
});
});
【问题讨论】:
-
可能使用自定义过滤器,如这里的答案所示:stackoverflow.com/questions/18095727/…
-
您要隐藏额外的文字还是移除额外的文字?
-
我想隐藏额外的文字,然后当点击更多的文字时,它会显示其余的文字
标签: javascript jquery angularjs