2011-05-28 149 views
2

我使用這個腳本來使用鍵盤箭頭鍵進行導航。但問題是我無法觸發點擊。Jquery:鍵盤導航問題

<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

這應該工作:

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

這很好。謝謝@Vertigo – 2011-05-28 09:22:11

0

它實際上是點擊,它只是似乎並不因爲你不」做什麼沒有任何東西粘在你的a標籤上,說它被點擊了。另外,我不認爲它允許在使用JS的瀏覽器中進行虛假點擊,我的意思是,當您用鼠標直接點擊它並轉到URL時,就會出現同樣的行爲。你可以編寫它,但它不會像href那樣,直接點擊它。然而,你可以通過類似的方式來僞造行動:

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