Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:如何检测只在特定元素上按箭头键_Javascript_Jquery_Scroll_Keydown_Onkeydown - Fatal编程技术网

Javascript jQuery:如何检测只在特定元素上按箭头键

Javascript jQuery:如何检测只在特定元素上按箭头键,javascript,jquery,scroll,keydown,onkeydown,Javascript,Jquery,Scroll,Keydown,Onkeydown,我是jQuery新手,正在尝试找到一种方法检测箭头键的按下(仅向上和向下)。 在网上搜索时,我从这里找到了这个 这看起来很好,但我只想在用户使用动态添加到页面的特定类(即元素具有焦点)的元素时检测箭头键的按下 具体来说,我想在按下带有焦点的列表上的向上或向下箭头键时突出显示相应的列表项 是否有一种方法可以实现这一点并跨浏览器工作 看起来这已经自动发生了,但在我的例子中,它不能正常工作,总是跳过列表项,这就是为什么我认为可以单独定义它 示例元素: <ul class="myClass" id

我是jQuery新手,正在尝试找到一种方法检测箭头键的按下(仅向上和向下)。 在网上搜索时,我从这里找到了这个

这看起来很好,但我只想在用户使用动态添加到页面的特定类(即元素具有焦点)的元素时检测箭头键的按下

具体来说,我想在按下带有焦点的列表上的向上或向下箭头键时突出显示相应的列表项

是否有一种方法可以实现这一点并跨浏览器工作

看起来这已经自动发生了,但在我的例子中,它不能正常工作,总是跳过列表项,这就是为什么我认为可以单独定义它

示例元素:

<ul class="myClass" id="someID">
   <li><a href="#">Value1</a></li>
   <li><a href="#">Value2</a></li>
   <li><a href="#">Value3</a></li>
</ul>
非常感谢您的帮助, 迈克

而不是

$(document).keydown(function(e) {
在您的javascript代码中

$(<selector>).keydown(function(e) {
$().keydown(函数(e){
其中
指向要跟踪的元素

更新

更好-因为您提到了动态添加的元素,所以请使用事件绑定的委托结构:

$(document).on("keydown", ".<yourClassName>", function(e) {
$(document).on(“keydown”和“”),函数(e){
而不是

$(document).keydown(function(e) {
在您的javascript代码中

$(<selector>).keydown(function(e) {
$().keydown(函数(e){
其中
指向要跟踪的元素

更新

更好-因为您提到了动态添加的元素,所以请使用事件绑定的委托结构:

$(document).on("keydown", ".<yourClassName>", function(e) {
$(document).on(“keydown”和“”),函数(e){
而不是

$(document).keydown(function(e) {
在您的javascript代码中

$(<selector>).keydown(function(e) {
$().keydown(函数(e){
其中
指向要跟踪的元素

更新

更好-因为您提到了动态添加的元素,所以请使用事件绑定的委托结构:

$(document).on("keydown", ".<yourClassName>", function(e) {
$(document).on(“keydown”和“”),函数(e){
而不是

$(document).keydown(function(e) {
在您的javascript代码中

$(<selector>).keydown(function(e) {
$().keydown(函数(e){
其中
指向要跟踪的元素

更新

更好-因为您提到了动态添加的元素,所以请使用事件绑定的委托结构:

$(document).on("keydown", ".<yourClassName>", function(e) {
$(document).on(“keydown”和“”),函数(e){

您可以使用标准

$('body').keyup(function(e){...})
mechanizm并检查当前激活元件的等级:

document.activeElement.classList

您可以使用标准

$('body').keyup(function(e){...})
mechanizm并检查当前激活元件的等级:

document.activeElement.classList

您可以使用标准

$('body').keyup(function(e){...})
mechanizm并检查当前激活元件的等级:

document.activeElement.classList

您可以使用标准

$('body').keyup(function(e){...})
mechanizm并检查当前激活元件的等级:

document.activeElement.classList

谢谢,JNF,但这也包括动态添加的元素吗?@keewee279,请参阅答案的最后一部分,这正是我想要的-非常感谢!我将尽快接受。:)谢谢,JNF,但这也包括动态添加的元素吗?@keewee279,请参阅答案的最后一部分,这正是我想要的-非常感谢!我将尽快接受。:)谢谢,JNF,但这也包括动态添加的元素吗?@keewee279,请参阅答案的最后一部分,这正是我想要的-非常感谢!我将尽快接受。:)谢谢,JNF,但这也包括动态添加的元素吗?@keewee279,请参阅答案的最后一部分,这正是我想要的-非常感谢!我将尽快接受。:)