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

Как вариант:
$(function() {
    var forms = ['login', 'join', 'amedia'];
    $.each(forms, function(name) {
        var button = $('#' + name + 'Button');
        var box = $('#' + name + 'Box');
        var form = $('#' + name + 'Form');
        button.mouseup(function(event) {
            box.toggle();
            button.toggleClass('active');
        });
        form.mouseup(function() { //функция не позволяет форме закрыться если в её поле произошёл клик
            return false;
        });
        $(document).mouseup(function(event) { //функция закроет форму если вне её поля произошёл клик
            if(!($(event.target).parent('#' + name + 'Button').length > 0)) {
                button.removeClass('active');
                box.hide();
            }
        });
    });
});


Вообще, лучше использовать классы. И mouseup навешивать динамически на document. Вобще есть тут что рефакторить.
__________________
В личку только с интересными предложениями
Ответить с цитированием