Я бы порекомендовал посмотреть на использование готового скрипта Accordion, например, встроенного в библиотеку пользовательского интерфейса jQuery: http://docs.jquery.com/UI/Accordion
Кроме того, я могу предложить несколько вещей. Ваш код:
$(".score-list").slideUp(speed);
$(".score-list").removeClass("open");
$("a.open-answer").removeClass("hidden");
$(this).parent().children(".score-list").slideDown(speed);
$(this).parent().children(".score-list").toggleClass("open");
$(this).toggleClass("hidden");
можно сделать намного эффективнее, сохранив результаты запроса jQuery, а также воспользовавшись возможностями цепочки jQuery: довольно много функций jQuery возвращают сам объект jQuery, что означает, что вы можете вызывать несколько функций подряд без необходимости ссылаться на объект снова и снова. Вот что я имею в виду:
$(".score-list") // my own preference is to split the calls onto
.slideUp(speed) // multiple lines to make it easier to read.
.removeClass("open")
;
$("a.open-answer").removeClass("hidden");
var $this = $(this); // store the result from a query in an object so you
// don't have to go through that again.
$this
.parent()
.children(".score-list")
.slideDown(speed);
.toggleClass("open")
;
$this.toggleClass("hidden");