我正在使用jQuery focus()和blur()在键盘导航(tabbing)期间突出显示图像链接,但是当通过键盘上的“Enter”跟踪链接时需要能够运行一些代码.
是否有内置事件可以执行此操作,还是需要执行bind keypress等操作并检查“Enter”键?
最佳答案
<a href="http://www.google.com" id="testlink">CatchMe</a>
$('#testlink').attr("rel", $('#testlink').attr("href"));
$('#testlink').attr("href","");
$('#testlink').keydown(function(event) {
if (event.keyCode == '13') {
alert("Don't you dare!");
}
if (event.keyCode == '71') {
location.href=$('#testlink').attr("rel");
}
});
此代码删除了href(将其存储在rel中).现在你可以抓住keydowns了.您可以随意响应回车键(13)(在这种情况下是警报).之后,如果需要,您可以让浏览器跟随链接.但是,在这个例子中,当按下’g’键(代码71)时,我只让浏览器跟随链接.
请注意,当href值类似于’javascript:alert(“blah”)’时,这也有效.
编辑:这更容易(受到this问题答案的启发):
$('#testlink').click(function () {alert("hi"); return false; });
(如果您希望在警报后跟踪链接,则返回true)