Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2016, 19:32
Интересующийся
Отправить личное сообщение для lakusha Посмотреть профиль Найти все сообщения от lakusha
 
Регистрация: 30.01.2016
Сообщений: 17

Как имитировать .one из jQuery на чистом JS
Есть вот такая функция:
$('.loginIcon').one('click', function(){
    $('.loginIcon').css({
        'width' : '100%',
        'height' : '100%',
        'left' : '0px',
        'margin-left' : '0px',
        'bottom' : '0px'
    });                                                            
    $('.buttonForSydorenko').css({
        'display' : 'block'
    }); 
    $('#inputLogin').css({
        'display' : 'block'
    }); 
    $('.wordLogin').css({
        'display' : 'block'
    }); 
    $('.buttonForLogin').css({
        'display' : 'block'
    }); 
    $('#inputLogin').delay(500).animate({height: '80px'},100);      
    $('.wordLogin').delay(500).animate({'margin-left': '-240px'})   
    $(this).css({
        'background' : 'rgb(73,38,105)',
        'padding-top' : '40px'
    });                                                             
});

Вот переписал внутренности на чистый JS:
loginIcon.addEventListener('click', function(){
    loginIcon.style.width = "100%";
    loginIcon.style.height = "100%";
    loginIcon.style.left = "0px";
    loginIcon.style.marginLeft = "0px";
    loginIcon.style.bottom = "0px";  
    loginIcon.style.background = "rgb(73,38,105)";                                                       

    buttonForSydorenko.style.display = "block";
    inputLogin.style.display = "block";
    wordLogin.style.display = "block";
    buttonForLogin.style.display = "block";
    setTimeout( function(){
    inputLogin.style.height = "80px";  
       },500);      
    wordLogin.classList.add("wordLoginAnim");   
    loginIcon.style.background = "rgb(73,38,105)";  
    loginIcon.style.paddingTop = "40px";
    alert('OPA');
});


Добавил во втором варианте алерт "Опа".
Цель: чтобы этот алерт вылетел только по первому клику, а следующие клики по этому элементу ничего не делали бы. В jQuery мне помог .one, тут не могу придумать, туплю.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2016, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

lakusha,

loginIcon.addEventListener('click', function x(){
    loginIcon.style.width = "100%";
    loginIcon.style.height = "100%";
    loginIcon.style.left = "0px";
    loginIcon.style.marginLeft = "0px";
    loginIcon.style.bottom = "0px";
    loginIcon.style.background = "rgb(73,38,105)";

    buttonForSydorenko.style.display = "block";
    inputLogin.style.display = "block";
    wordLogin.style.display = "block";
    buttonForLogin.style.display = "block";
    setTimeout( function(){
    inputLogin.style.height = "80px";
       },500);
    wordLogin.classList.add("wordLoginAnim");
    loginIcon.style.background = "rgb(73,38,105)";
    loginIcon.style.paddingTop = "40px";
    alert('OPA'); loginIcon.removeEventListener('click', x);
});
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2016, 19:55
Интересующийся
Отправить личное сообщение для lakusha Посмотреть профиль Найти все сообщения от lakusha
 
Регистрация: 30.01.2016
Сообщений: 17

Спасибо большое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обойти удаление js в jquery IgorN jQuery 1 09.05.2012 01:32
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 20:25
Как отлаживать динамически подгружаемый скрипт js в google chrom mistbow Javascript под браузер 1 03.04.2012 13:14
Найти проблему с jQuery или писать js? Saladdin Элементы интерфейса 0 17.03.2011 17:02
JQUERY - как скачать данную библиотеку? Golovastik jQuery 7 06.03.2011 18:03