Перепиши код так:
function hideLists() {
$("div.hlist").css("visibility", "hidden");
}
hideLists();
$("body").click(hideLists);
$("div.hctrl a").click(function() {
hideLists();
var $list = $(this).closest("div.roll").find("div.hlist");
var visibility = $list.css("visibility");
$list.css("visibility", visibility == "visible" ? "hidden" : "visible");
return false;
});
$("div.hlist a").click(function() {
var new_a = $(this).attr("class"),
new_b = $(this).text();
hideLists();
$(this).closest("div.roll").find("div.hctrl a").removeClass().addClass(new_a).text(new_b);
$(this).closest("div.roll").find("input[type='hidden']").val(new_a);
return false;
});
Вот только почему visibility? С display был бы куда проще.