2016-08-22 57 views
1

我想在箭頭按上下跳。每次按向上或向下箭頭時,我只需觸發下一個或上一個項目的點擊,但jQuery沒有像。 。 。跳轉到上一個或下一個元素向上或向下按鍵與jQuery

$('body').on("keyup", function(e) { 

       var code = e.which; 
       if (code == 40) { 

       e.preventDefault();  
       // down here 
       $('.cv_item').next().trigger("click"); 

       } else if (code == 38) { 

       e.preventDefault();  
       // up here 
      $('.cv_item').previous().trigger("click"); 
       } 
      }); 

更新:FIDDLE

回答

2
  1. 所以以前的()應該是上一個()。
  2. 您需要存儲當前的有源元件跳到下一首或上一個
  3. 這裏是如何觸發點擊一個鏈接: jQuery.trigger('click') not working

而且JSFIDDLE

$currentLi = $('.cv_item').last().closest('li'); 

$('body').on("keyup", function(e) {    
    var code = e.which; 

    if (code == 40) { 
     e.preventDefault();  
     // down here 
     $currentLi = $currentLi.next(); 
     if ($currentLi.length==0) 
     $currentLi = $('.cv_item').first().closest('li'); 

     $('.cv_item').removeClass('active-link'); 

     $link = $currentLi.find('.cv_item'); 
     $link.addClass('active-link');  
     $link[0].click(); 

     } else if (code == 38) { 
     e.preventDefault();  
     // up here 
     $currentLi = $currentLi.prev(); 
     if ($currentLi.length==0) 
     $currentLi = $('.cv_item').last().closest('li'); 

     $('.cv_item').removeClass('active-link'); 

     $link = $currentLi.find('.cv_item'); 
     $link.addClass('active-link');  
     $link[0].click(); 

    } 
}); 

更新:腳本已更改爲將CSS類添加到<a>元素,並且類定義很簡單:

a.active-link { 
    color: #0f0; 
} 
+0

是偉大的,但沒有顯示哪些是活動的,我試圖給currentLi添加一個類,但沒有奏效。 – Kez

相關問題