Показать сообщение отдельно
  #8 (permalink)  
Старый 24.06.2013, 06:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Перепиши код так:
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 был бы куда проще.
Ответить с цитированием