Jquery: проблема с навигацией с клавиатуры

#javascript #jquery #keyboard #navigation

#javascript #jquery #клавиатура #навигация

Вопрос:

Я использую этот скрипт для навигации с помощью клавиш со стрелками на клавиатуре. Но проблема в том, что я не могу вызвать click.

 <script>
$(document).keyup(function(e){
    switch (e.keyCode){
        case 39:
        if( $(".imgnav-next").attr("href")){
            $(".imgnav-next").trigger("click");
        }
        break;
        case 37:
        if( $(".imgnav-prev").attr("href")){
            $(".imgnav-prev").trigger("click");
        }
    break;
    }
});
</script>
  

Это часть html с навигацией:

 <div class="imgnav-prev-container">
    <a href="prev.html" class="imgnav-prev">Next pic</a>
</div>
<div class="imgnav-next-container">
    <a href="next.html" class="imgnav-next">Previous pic</a>
</div>
  

Ответ №1:

Это должно сработать:

 $(document).keyup(function(e){        
    switch (e.keyCode){                                                                                                                     
        case 39:                                                                                                                            
        if( $(".imgnav-next").attr("href")){      
            window.location = $(".imgnav-next").attr("href");       
        }                                                                                                                                   
        break;                                                                                                                              
        case 37:                                                                                                                            
        if( $(".imgnav-prev").attr("href")){      
            window.location = $(".imgnav-prev").attr("href");       
        }                                                                                                                                   
    break;                                                                                                                                  
    }
});
  

Ответ №2:

На самом деле это щелчок, просто кажется, что он ничего не делает, потому что к вашим a тегам не привязано ничего, что говорило бы, что на него нажали. Также я не думаю, что в браузерах, использующих JS, разрешено делать ложный щелчок, я имею в виду, подобное поведение, когда вы буквально щелкаете по нему мышью и переходите к URL. Вы можете написать код, чтобы сделать это click так, но он не перейдет к href подобному, когда вы буквально нажимаете на него. Однако вы можете подделать действие чем-то вроде:

   `window.location.href = $(".imgnav-next").attr("href");`