如何使用JQuery单击锚点以便也调用href?

时间:2011-10-18 11:29:13

标签: javascript jquery html css ajax

我有一个锚点和一个文本框如下:

 <div id="container">
        <input type="text" id="textBox" />       
        <a id="anchorTest" href="javascript: alert('inside anchorTest')">Click me</a>
    </div>

单击回车键时,我正尝试将默认按钮设为锚点:

$(document).ready(function () {

            $('#anchorTest').click(function () {
                alert('clicked');
            });

            $('#container').keyup(function (e) {

                if (e.keyCode == 13) {                    
                    $('#anchorTest').triggerHandler('click');
                }
            });
        });

但锚href javascript永远不会被调用?

如何使用JQuery单击锚点以便也调用href?

我使用下面的代码并且它有效,但有更好的方式,因为它提交表单,而我想要一个纯粹的JavaScript代码:

window.location = $('#anchorTest').attr('href');   

由于

3 个答案:

答案 0 :(得分:4)

jQuery以“特殊”方式处理锚标签上的click事件。有关详细信息,请参阅此问题 - Can I call jquery click() to follow an <a> link if I haven't bound an event handler to it with bind or click already?

从上面的问题 -

  

我做了一些研究,似乎没有.click   使用'a'标签,因为浏览器不支持“假点击”   用javascript。我的意思是,你不能用javascript“点击”一个元素。   使用'a'标签,您可以触发其onClick事件,但链接不会   更改颜色(访问过的链接颜色,默认为紫色)   大多数浏览器)。因此,进行$()。click事件是没有意义的   使用'a'标签,因为转到href属性的行为不是   onClick事件的一部分,但在浏览器中进行了硬编码。

答案 1 :(得分:0)

将“triggerHandler”更改为“触发”,看看是否能解决您的问题。

我认为triggerHandler会绕过标准行为,并在你的情况下执行未设置的“onclick”事件处理程序。

答案 2 :(得分:0)

if (e.keyCode == 13) {                    
      $('#anchorTest').click();
}

从这里查看http://jsfiddle.net/amBXV/