首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Read More/Read Less附加在全文之后,仅用于表示Read Less状态

jQuery Read More/Read Less附加在全文之后,仅用于表示Read Less状态
EN

Stack Overflow用户
提问于 2013-01-25 23:53:39
回答 3查看 3.2K关注 0票数 0

对于这个jQuery,我可能需要一些指导。这似乎是一个流行的话题,到目前为止,我已经在单击时更改了Read more/read less文本,并且单个实例在页面上有多个实例的情况下独立工作。

我现在需要做的是在全文的末尾添加Read Less。我现在可以正常工作,但是toggleSlide (向上滑动)也因此中断了。

我现在正在学习jQuery (我喜欢它!)因此,任何帮助都将不胜感激。

代码如下:

代码语言:javascript
复制
$(document).ready(function() {
$('.fulltext').hide();

    $('.blog-item .readmore').click(function(event) {
     event.preventDefault();
        $(this).parent().nextAll('.fulltext').first().slideToggle('slow');
        $(this).text($(this).text() == 'Read less...' ? 'Read more...' : 'Read less...');
        $(this).appendTo($('.fulltext'));
    });            
});

http://jsfiddle.net/Techbot/AuAKn/

EN

回答 3

Stack Overflow用户

发布于 2013-01-26 00:04:54

您遇到的问题是在滑动切换之后将.readmore锚点附加到末尾,这破坏了dom遍历的功能。

代码语言:javascript
复制
    $(this).parent().nextAll('.fulltext').first().slideToggle('slow');

我用叉子叉了你的小提琴,给你看了一种更简单的方法。现在你只需要用CSS定位"read more“锚点

http://jsfiddle.net/AcQ6s/2/

票数 1
EN

Stack Overflow用户

发布于 2013-01-26 00:15:30

只是对HighParkCoder的答案做了一点微调,但它更健壮,而且能经得起每个博客项目结构的改变。相反,也要更新这一行:

代码语言:javascript
复制
$(this).closest('.blog-item').find('.fulltext').slideToggle('slow');

缓存$(this)也是值得的,因为您在代码中多次引用它。保持你的代码更通用总是值得的,这样如果你决定改变你的博客项目的结构,javascript with work。使用.parent()与博客项目的当前结构更紧密地联系在一起。

JSFiddle:

http://jsfiddle.net/D7a6E/3/

票数 0
EN

Stack Overflow用户

发布于 2013-01-26 00:05:38

您几乎可以做到这一点;只需进行一些调整。首先,重新排序您的HTML:

代码语言:javascript
复制
<div class="blog-item">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at urna ac
        leo vulputate egestas a ut odio. In hac habitasse platea dictumst. Donec
        in erat velit, eu ultricies diam.

    <div class="fulltext">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at urna ac
            leo vulputate egestas a ut odio. In hac habitasse platea dictumst.</p>
    </div>
    <a class="readmore" href="#">Read more...</a>
    </p>
</div>

然后,只需在单击时切换文本:

代码语言:javascript
复制
$(document).ready(function () {
    $('.fulltext').hide();

    $('.blog-item .readmore').click(function (event) {
        event.preventDefault();
        $('.fulltext').slideToggle('slow');
        $(this).text($(this).text() == 'Read less...' ? 'Read more...' : 'Read less...');
    });
});

这应该能起到作用!这里有一个小提琴:

http://jsfiddle.net/sablefoste/AuAKn/1/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14525306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档