javascript / Jquery Accordion无法正常工作

时间:2010-09-03 19:20:42

标签: javascript jquery html jquery-ui

我遇到了jquery手风琴的问题。这看起来很棘手。

第一支手风琴,项目1,效果很好(感谢Nick Craver),但是第二名&第3个等等不起作用。我真的不知道我是否应该使用.filter

这是代码&示例页面:http://jsfiddle.net/THjgV/2/

谢谢。

1 个答案:

答案 0 :(得分:1)

由于它们都有不同的高度,您需要独立存储和使用每个高度,我建议使用$.data().data()。同时将您的ID更改为类,因为它们应该是唯一的。

$('.slickbox').hide().each(function() {
    $.data(this, 'height', $(this).height());
});
$('.more a').toggle(function() {
    var sb = $(this).parent().prev('.slickbox').slideDown(3200);
    $('html, body').animate({
        scrollTop: '+=' + sb.data('height')
    }, 3200);
    return false;
}, function() {
    var sb = $(this).parent().prev('.slickbox').slideUp(3200);
    $('html, body').animate({
        scrollTop: '-=' + sb.data('height')
    }, 3200);
    return false;
});

You can test it out here,循环并存储每个.slickbox的高度(现在使用类!)并存储它。单击每个链接时,它会专门切换前面的class="slickbox"元素,并使用它存储的'height'值进行滚动。