@Waksim

Как выполнить событие при повторном нажатии клавиши?

Привет Тостер),

Есть скрипт, который по нажатию на клавишу Backspace меняет ширину блока "wdth" с изначальных 50% до 80%:

function moveRect(e){
     
    switch(e.keyCode){

        case 32:   // если нажата клавиша Backspase

            for (i = 0; i < 1; i++) {
            	var wdth = document.getElementById("wdth");
       		    wdth.style.width = "80%";
       		};

            break;
    };
};
 
addEventListener("keydown", moveRect);

Нужно чтобы при повторном нажатии на Backspace ширина блока "wdth"
- возращалась к исходной (отменяла действие по первому нажатию)
или
- задавала новое значение width = "50%"

Заранее всем спасибо, буду рад любой помощи!!!
_______________________________________________________________
  • Вопрос задан
  • 726 просмотров
Решения вопроса 2
neuotq
@neuotq
Прокрастинация
Кстати, все эти состояния тд, одна из причин зачем придумали Ангуляры, Реакты и тд.
А вам можно посоветовать например проверять значение 'wdth.style.width' перед его установкой.
Добавьте условие, если 50%, то вы ставите 80% и наоборот.
Ответ написан
adrin13
@adrin13
front-end
может вам лучше продажами к примеру заняться или другим каким-то делом?
var isPressBtn = false;

function moveRect( e ) {

    switch ( e.keyCode ) {

        case 32: // если нажата клавиша Backspase

            for ( i = 0; i < 1; i++ ) {
                var wdth = document.getElementById( "wdth" );
                if ( !isPressBtn ) {
                    wdth.style.width = "80%";
                    isPressBtn = true;
                } else {
                    wdth.style.width = "50%"; // или  ""
                    isPressBtn = false;
                }

            };

            break;
    };
};

addEventListener( "keydown", moveRect );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы