【发布时间】:2010-09-04 03:29:26
【问题描述】:
我有 jquery 手风琴的问题。这似乎很棘手。
第一台手风琴 project1 运行良好(感谢Nick Craver),但第二台和第三台手风琴无法正常运行。我真的不知道我是否应该使用.filter。
这里是代码和示例页面:http://jsfiddle.net/THjgV/2/
谢谢。
【问题讨论】:
标签: javascript jquery html jquery-ui
我有 jquery 手风琴的问题。这似乎很棘手。
第一台手风琴 project1 运行良好(感谢Nick Craver),但第二台和第三台手风琴无法正常运行。我真的不知道我是否应该使用.filter。
这里是代码和示例页面:http://jsfiddle.net/THjgV/2/
谢谢。
【问题讨论】:
标签: javascript jquery html jquery-ui
由于它们都有不同的高度,您需要单独存储和使用每个高度,我建议使用$.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' 值进行滚动。
【讨论】: