2017-01-15 2 views
1

Еще новичок здесь, пожалуйста, быть нежным :)JS - преобразовать событие KBD в ссылку нажмите

У меня есть CSS-lighbox с 3-х звеньев: предыдущее изображение, следующее изображение и выхода. Ссылки таковы:

<a href="#img37" class="prev"><img src="images/prev.png" /></a> 

Тогда у меня есть KBD прослушивания скрипт:

function kbdNav(e) { 
     switch(e.keyCode) { 
      case 37: 
      // activate link "prev" 
       break; 
      case 39: 
      // activate link "next" 
       break; 
      case 27: 
      // activate link "exit" 
       break; 
     } 
    } 

Моя цель в том, что при нажатии стрелки KBD (корпус 37) ссылка @ prev.png активируется , так что изображение лайтбокса переходит к предыдущему изображению. То же самое для остальных 2 случаев.

Какой метод может быть использован для этого?

ответ

1

Сначала выберите анкерные элементы:

var prevLink = document.querySelector('.prev'); 
var nextLink = document.querySelector('.next'); 
var exitLink = document.querySelector('.exit'); 

Затем редактировать слушателя следующим образом:

function kbdNav (e) { 
    switch (e.keyCode) { 
     case 37: 
      prevLink.click(); 
      break; 
     case 39: 
      nextLink.click(); 
      break; 
     case 27: 
      exitLink.click(); 
    } 
} 
+0

Спасибо, я еще не знал о querySelector. К сожалению, он работает неправильно. Я вскоре объясню, после того как я выясню, как делать линейные тормоза в этих комментариях. : -/ – sveto

+0

Проблема заключается в том, что есть несколько страниц лайтбоксов, которые имеют класс = prev (и class = next и class = exit). Кажется, что этот метод всегда нацелен на первый, поэтому он всегда меня к первому изображению. Нужно ли мне менять идентификаторы для каждого изображения (почти 30 изображений)? – sveto

+0

Возможно, лучшим планом может быть доступ к номеру изображения из изображения, которое показано в лайтбокс, и добавление +1 или -1 и ссылка непосредственно на следующий/предыдущий? Но какой метод JS позволяет мне спросить, какое изображение показано банкоматом? – sveto

0

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

Я нашел лучшее решение с чистой JS-галереей/лайтбокс.

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