我遇到了jquery手风琴的问题。这看起来很棘手。
第一支手风琴,项目1,效果很好(感谢Nick Craver),但是第二名&第3个等等不起作用。我真的不知道我是否应该使用.filter
。
这是代码&示例页面:http://jsfiddle.net/THjgV/2/
谢谢。
答案 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'
值进行滚动。