【发布时间】:2012-02-27 18:38:18
【问题描述】:
以下问题:我有一个包含大量文本的简单段落,我只希望第一行出现。所以实际上有点像预告片。单击第一行时,段落应该动画到它的全高(和宽度)。现在我正在通过删除折叠的类来做到这一点......
<p class="collapsed">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
jQuery:
$('p.collapsed').click(function() {
$(this).removeClass('collapsed').addClass('expanded');
$(this).append("<a href='#' class='closer'>×</a>");
});
$('a.closer').click(function(e) {
$(this).remove();
$('p.expanded').removeClass('expanded').addClass('collapsed');
});
我还想在段落展开时附加一个结束元素,以便我可以再次折叠它。看看我的小提琴 - http://jsfiddle.net/3J2g7/
几个问题:
1.) 现在我根本不明白为什么每次单击该段落时都会附加a.closer。它应该只附加一次,因为我在单击它时删除了 collapsed 类,所以它不应该再次触发 append(),对吧?
2.) 知道为什么单击 a.closer 元素时不会删除它吗?
3.) 是否有一些奇特的方式来为整个体验设置动画。例如。我只是喜欢在单击该段落时将其剩余部分 slideDown() 并在单击更近时再次 slideUp() 。
4.) 我不知道的最后一件事是为什么我不能在折叠的段落上附加三个点作为一个小提示,以便有更多的文本,我尝试在 p 上使用 :after,但不起作用!
【问题讨论】:
-
你应该一次问一个问题。不是四个。希望我的回答有所帮助。
标签: javascript jquery collapse