我尝试使用键盘上的四个箭头键移动按钮上的绿色悬停颜色。问题是它不能正常移动。我想要的是以下内容:
- 按向右,绿色向右移动。
- 按向左,绿色向左移动。
- 向上或向下按,绿色也转到中间行(四五六),而不
从 HTML 中删除。
我希望绿色根据我按下的按钮向各个方向移动。例如,如果在 1 并向下按,转到 4。如果在 1 并按右转到 2。如果在 2 并按向左,转到 1 等
键码是:左:37,右:39,上:38,下:40
怎么做到呢?非常感谢!!!
var button = $('button');
var buttonSelected;
$(window).keydown(function(e) {
if (e.which === 40) {
if (buttonSelected) {
buttonSelected.removeClass('selected');
next = buttonSelected.next();
if (next.length > 0) {
buttonSelected = next.addClass('selected');
} else {
buttonSelected = button.eq(0).addClass('selected');
}
} else {
buttonSelected = button.eq(0).addClass('selected');
}
} else if (e.which === 38) {
if (buttonSelected) {
buttonSelected.removeClass('selected');
next = buttonSelected.prev();
if (next.length > 0) {
buttonSelected = next.addClass('selected');
} else {
buttonSelected = button.last().addClass('selected');
}
} else {
buttonSelected = button.last().addClass('selected');
}
}
});
button.selected {
background: green
}
.all button {
border: 1px solid blue;
color: #222;
padding: 10px 25px;
cursor: pointer;
}
.all button:hover {
background-color: orange;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="all">
<button>One</button>
<button>Two</button>
<button>Three</button>
</div>
<div class="all">
<button>Four</button>
<button>Five</button>
<button>Six</button>
</div>
<div class="all">
<button>Seven</button>
<button>Eight</button>
<button>Nine</button>
</div>