触发带键击的超链接

时间:2009-02-02 15:55:18

标签: jquery html

我想通过使用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>

2 个答案:

答案 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){...}阻止位置。