0

我有以下简单的 html 页面:

<html>
<head>
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).keydown(function(e){
    if (e.keyCode == 37) {  // left
       $('#prev').click();   
       return false;
    } else if (e.keyCode == 39) {  // right
       $('#next').click();
       return false;
    }
});
</script>
</head>

<body>
<a id="next" href="/next">next</a>
<a id="prev" href="/prev">prev</a>
</body>

</html>

我想让用户使用左右键盘键浏览文章。因此,单击左箭头应该转到 /prev 链接,单击右箭头应该转到 /next 链接。由于某种我无法理解的原因,它在任何浏览器中都不起作用。

谢谢

4

1 回答 1

2

像这样:

$(document).keydown(function(e){    
    if (e.keyCode == 37) {  // left
       window.location.href = $('#prev').attr('href');   
       return false;
    } else if (e.keyCode == 39) {  // right
       window.location.href =  $('#next').attr('href');  
       return false;
    }
});

您正在调用.click()一个元素,但这不会触发click事件,那.trigger()是为了:

$(document).keydown(function(e){
    if (e.keyCode == 37) {  // left
       $('#prev').trigger('click');   
       return false;
    } else if (e.keyCode == 39) {  // right
       $('#next').trigger('click');
       return false;
    }
});
于 2013-03-28T16:17:59.207 回答