如何在超过1个div上使用read more / read less jquery脚本

时间:2014-06-30 20:45:11

标签: javascript jquery

好的,我有一个jquery脚本,是为了阅读更多/在div上阅读更少,但我想在超过1个div上使用它,而没有更多...按钮打开页面上的所有div,我该怎么做?

这里是jsfiddle:

http://jsfiddle.net/S2mCv/

代码:

<script>
jQuery(function($){

// Resize Height
function reh(e) {
    $(e).css({'height':$(e).attr('height')})
}

// Empty Height
function emh(e) {
    $(e).css({'height':'auto'});
}

// Resize .lead (default height)
reh('.lead');

// Actions
// More: Lead
$('body').on('click', '.more-lead', function(){
    emh('.lead');
    $('.more-lead').html('Less...');
    $('.more-lead').addClass('less-lead').removeClass('more-lead');
});

// Less: Lead
$('body').on('click', '.less-lead', function(){
    reh('.lead');
    $('.less-lead').html('More...');
    $('.less-lead').addClass('more-lead').removeClass('less-lead');
});

});
</script>

1 个答案:

答案 0 :(得分:0)

http://jsfiddle.net/S2mCv/1/

// More: Lead
$('body').on('click', '.more-lead', function(){
    emh($(this).siblings('.lead'));
    $(this).html('Less...').addClass('less-lead').removeClass('more-lead');
});

// Less: Lead
$('body').on('click', '.less-lead', function(){
    reh($(this).siblings('.lead'));
    $(this).html('More...').addClass('more-lead').removeClass('less-lead');
});

您定位的是所有课程。您应该专门针对需要展开或折叠的元素。通过寻找兄弟姐妹,你可以很容易地做到这一点。 此外,使用$(this)会保留对所点击元素的引用,而不是一般性地重新选择所有.more-lead或全部.less-lead

http://api.jquery.com/siblings/