jquery 选项卡、 slider 和阅读更多链接——阅读更多仅在第一篇文章上工作

标签 jquery css tabs pagination slideshow

@roXon 解决了这个问题。如果您有兴趣使用它,请参阅下面他的回复。

我正在为我的每篇文章使用 jquery 的“选项卡”和“阅读更多”功能,但阅读更多功能没有发挥应有的作用。 “阅读更多”并未扩展到我的每篇文章,它仅适用于第一篇(顶部)文章。

演示:http://fiddle.jshell.net/evanmoore/yNC9G/1/show/

fiddle :http://jsfiddle.net/evanmoore/yNC9G/1/

最佳答案

DEMO

用过:

$(this).parent().prev('.wrap').animate({

你有一个额外的逗号和一些小错误。

我做了什么让它工作: 在顶部,我为您的 .wrap 创建了一个 each 方法 - 将每个 .wrap 高度存储到 .data() 中。

$(function(){
    $('#postsBig .wrap').each(function(){
        var wraph = $(this).height();
        $(this).data('h',wraph);
    });
});

然后我隔离了检查 .wrap 是否需要“页脚”的脚本 if 阅读更多内容。

$('.wrap').each(function(){
    var wrap = $(this);
    var wraph = wrap.data('h');
    if(wraph >= slideHeight){
        wrap.height(slideHeight);
        wrap.next('.read-more').append('<a href="#">Click to Read More</a>');
    }
});

比起我刚刚编辑了一些你的代码来触发好的元素并为正确的 .wrap 元素搜索合适的 .data 高度:

$('.read-more a').click(function(){
    var defHeight = $(this).parent().prev('.wrap').data('h');
    var curHeight = $(this).parent().prev('.wrap').height();
    if(curHeight <= slideHeight){
        $(this).parent().prev('.wrap').animate({
          height: defHeight
        }, 500);
        $(this).html('Close');
    }else{
        $(this).parent().prev('.wrap').animate({
          height: slideHeight
        }, 500);
        $(this).html('Click to Read More');
    }
    return false;
});

关于jquery 选项卡、 slider 和阅读更多链接——阅读更多仅在第一篇文章上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459006/

相关文章:

javascript - 如何将新数字从函数传递给变量?

javascript - 如何使用Jquery检查页面上是否显示弹出窗口

CSS div 在其高度达到屏幕分辨率时移动

javascript - IE 8 的 window.open() 方法 - 强制窗口在选项卡之外打开

jquery - 获取列表子项相对于父项的索引

jquery - Express .map 函数不返回值

jquery - 获取一个 div 的高度并将其应用于单独的一个

css - 跨浏览器按钮填充问题

tabs - 如何添加带有外部链接的自定义标签按钮?

jquery - 在同一页面中多次使用 Grid-A-Licious 插件