2016-04-20 3 views
1

Я бы хотел, чтобы клавиши со стрелками влево и вправо вызывали обратную и следующую нажатия кнопок в моем Javascript. Я чувствую, что я не совсем реализую его правильно, так как мои кнопки работают, но нажатия клавиш этого не делают.Keybinding кнопка, которая запускает его функцию onclick

function init() { 
     flashmovie = document.getElementById('flashmovie'); 
     document.getElementById('back').onclick = function() { 
      if (c == 0) { 
       c = paths.length; 
      } 
      c-- 
      displayFiles(); 
     } 

     document.getElementById('next').onclick = function() { 
      if (c == paths.length - 1) { 
       c = -1; 
      } 
      c++; 
      displayFiles(); 
     } 

     document.keypress(function (e) { 
      if (e.which == 37) { 
       $("#back").click(); 
      } 
     }); 

     document.keypress(function (e) { 
      if (e.which == 39) { 
       $("#next").click(); 
      } 
     }); 

    } 

ответ

1

Вы, вероятно, хотите keydown событие.

function init() { 
 
    document.getElementById('back').onclick = function() { 
 
    console.log('back!'); 
 
    } 
 

 
    document.getElementById('next').onclick = function() { 
 
    console.log('next!'); 
 
    } 
 

 
    document.addEventListener('keydown', function(e) { 
 
    if (e.which == 37) { 
 
     $("#back").click(); 
 
    } 
 
    }); 
 

 
    document.addEventListener('keydown', function(e) { 
 
    if (e.which === 39) { 
 
     $("#next").click(); 
 
    } 
 
    }); 
 
} 
 

 
init();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="back">Back</button> 
 
<button id="next">Next</button>

Я догадывался, который слушатель событий стиль, который вы хотели (родной DOM против JQuery), потому что у вас есть смесь, но это должно заставить вас в правильном направлении.


Из опыта, если у вас есть более чем очень простой вариант использования для обработки нажатий клавиш, я бы рекомендовал использование библиотеки, как Keypress.

+0

Спасибо, что бр работал как шарм: D также я буду смотреть в keypress и все прочее – cosmichero2025

1

Без JQuery, попробуйте это

document.onkeyup = function(e){ 
    if (e.which == 37) { 
     $('#back').click(); 
    } else if (e.which == 39) { 
     $('#next').click(); 
    } 
} 

С JQuery,

$(document).keypress(function(e){ 
    if (e.which == 37) { 
     $('#back').click(); 
    } else if (e.which == 39) { 
     $('#next').click(); 
    } 
}); 
+0

Guy aboves отвечает хорошо для меня, но я все еще высоко ценю ваши и надеюсь, что это поможет кому-то еще в другой ситуации. – cosmichero2025

Смежные вопросы