Jquery: проблема с клавиатурной навигацией - PullRequest
2 голосов
/ 28 мая 2011

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

<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>

Ответы [ 2 ]

2 голосов
/ 28 мая 2011

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

$(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;                                                                                                                                  
    }
});
0 голосов
/ 28 мая 2011

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

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