我想通过使用jQuery按Enter键来触发超链接。我有以下html,但所有Enter-stroke确实触发警报,它不会导航到链接。但是,单击该链接会导航到新地址。我错过了什么?
我知道我的测试函数正在运行,因为addClass / removeClass函数正在工作。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(event){
alert(this.href);
});
});
function test(event){
if (event.keyCode == 13) {
$("a").addClass("test");
$("a.one").trigger('click');
}
else {
$("a").removeClass("test");}
}
</script>
<style type="text/css">
a.test { font-weight: bold; }
</style>
</head>
<body onkeypress='test(event)'>
<a class="one" href="http://jquery.com/">jQuery</a>
<br/>
<a class="two" href="http://stackoverflow.com/">stack overflow</a>
</body>
</html>
答案 0 :(得分:1)
添加一个window.location = this.href;到你的点击功能。这应该有用。
答案 1 :(得分:0)
那么,您想触发点击还是只是重新定位?链接本质上是重新定位的,但当你触发onclick到其他事件时它只是执行绑定功能。
我建议您将此任务分解为以下部分以保持代码清洁: 1)执行所需操作的单独函数,包括使用window.location.href =“yournewurl”(或者像http://www.oakcitygraphics.com/jquery/jqURL/jqURLdemo.html这样的jquery插件的一些高级内容。 2)在需要的事件上调用此函数,比如onclick等。
或者只强制if(event.keyCode == 13){...}阻止位置。