Показать сообщение отдельно
  #1 (permalink)  
Старый 01.12.2014, 20:43
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Поиск элементов
добрый вечер, скажите пожалуйтса можно ли как-то оптимизировать этот код? что-то мне не очень нравится что я каждый раз обращаюсь к одному и тому же элементу (пускай даже через переменную и через this), лучше будет если одним разом изменить все необходимые стили? такое вообще возможно в js?)

var email = document.getElementById('email');
    email.onkeypress = function() {
        this.style.borderColor = '#9DE2EE';
        this.style.color = '#434343';
        this.style.backgroundImage = 'none';
    };
    email.onfocus = function() {
        if (this.value == 'E-mail') {
            this.value = '';
            this.style.color = '#434343'; 
        }
    };
    email.onblur = function() {
        if (this.value == '') {
            this.value = 'E-mail';
            this.style.color = '#BBB';
            this.style.borderColor = '#9DE2EE';
            this.style.backgroundImage = 'none'; 
        }
        else if (this.value != '' || this.value != 'E-mail') {
            if (/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(this.value)) {
                $.ajax({
                    type: 'GET',
                    url: '/reg/check/?v=email&val=' + this.value,
    				cache: false,
    				success: function(data) {
    				    if (data > 0) {
    				        email.style.borderColor = '#F29793';
                            email.style.color = '#F2645C';
                            email.style.background = 'url(/assets/img/denied.gif) 172px 10px no-repeat';
    				    } else {
    				        email.style.borderColor = '#89CFB0';
                            email.style.color = '#50BA88';
                            email.style.background = 'url(/assets/img/accepted.gif) 171px 10px no-repeat';
    				    }
    				}
                });
            } else {
                email.style.borderColor = '#F29793';
                email.style.color = '#F2645C';
                email.style.background = 'url(/assets/img/denied.gif) 172px 10px no-repeat';
            }
        }
    };
Ответить с цитированием