jquery - 使用 jQuery 按向上或向下键跳转到上一个或下一个元素

标签 jquery keypress

我正在尝试按箭头键上下跳跃。我只需要在每次按下向上或向下箭头时触发对下一个或上一个项目的单击,但 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

最佳答案

  1. 所以 previous() 应该是 prev()。
  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;
}

关于jquery - 使用 jQuery 按向上或向下键跳转到上一个或下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39087494/

相关文章:

jquery - PhoneGap Jquery 滑动不良

javascript - jquery 对话框暂停像 alert() 这样的脚本

tinymce - 如何在 TinyMCE 中覆盖 Ctrl+V

javascript - 如何同时检测按键和鼠标悬停

javascript - 避免在我的表单 JQuery 中重复提交

javascript - 当窗口滚动到顶部时如何使用粘性侧边栏向上移动

python - 将按键发送到嵌入式 Pygame

C++:GetAsyncKeyState() 不会立即注册按键

string - 如何防止在特定位置之前编辑文本框?

javascript - 根据链接内的文本使用 jQuery 单击链接