jquery - 按热键跳过 li 不工作 jquery

标签 jquery

我有一个代表在线考试的 li 安排。

如果学生单击随机 li,并且不知道答案,他可以通过单击相应的 li 或仅按其中的数字 5 跳至下一个问题 (li)。键盘。

这是我迄今为止编写的代码。

问题

我需要检测当前打开的li(聚焦输入),如果按键盘上的数字5,则跳到下一个li并打开它以在其中工作

	
$("li").on("click",function(){
 $("li").find("input").hide();
$(this).find("input").show().focus();

});


var body = $('body');

    body.keypress( function (e) {
		
    var li =  $(document).find('ul.list li');

    
	
	if ( e.which == 53 ) {
		//alert()
		li.find("input").next().show();
	}
	
	
	
	
});
li input{display:none;}
li{cursor:pointer;border:1px solid red;margin:5px;padding:10px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<ul class='list'>

<li>a <input value='' /></li>
<li>b <input value='' /></li>
<li>c <input value='' /></li>
<li>d <input value='' /></li>
<li>e <input value='' /></li>
<li>f <input value='' /></li>

</ul>

最佳答案

您可以使用document.activeElement来获取事件的input元素。获取 input 实例后,使用 closest() 获取 li 并使用 next() 移动到下一个li

$("li").on("click", function() {
  $("li").find("input").hide();
  $(this).find("input").show().focus();

});

$('body').keypress(function(e) {

  if (e.which == 53) {
    e.preventDefault();

    let li, input;
    if (document.activeElement.tagName == "BODY") {
      input = $('li input').first();
    } else {
      li = $(document.activeElement).closest('li');
      input = li.next().find("input");
    }

    input.show();
    input.focus();
  }
});
li input {
  display: none;
}

li {
  cursor: pointer;
  border: 1px solid red;
  margin: 5px;
  padding: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

<ul class='list'>

  <li>a <input value='' /></li>
  <li>b <input value='' /></li>
  <li>c <input value='' /></li>
  <li>d <input value='' /></li>
  <li>e <input value='' /></li>
  <li>f <input value='' /></li>

</ul>

关于jquery - 按热键跳过 li 不工作 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914799/

相关文章:

javascript - 根据 CSS 和内容选择包含行

javascript - 如何同步两个div的滚动位置?

javascript - jQuery post 数据部分发送到 PHP

javascript - 单页,带有固定动态页脚的滚动站点

javascript - 将 html 附加为变量不会解释标签

javascript - 如何使用 setTimeout 来切换 jquery 中的类?

php - 如何在注销表单中使用 Sweet alert 2?

javascript - ng-checked 在 AngularJS 中不起作用

Javascript:将字符串转换为对象

jQuery倒计时器,到0后自动刷新