【问题标题】:How to click the anchor using JQuery so that the href is also called?如何使用 JQuery 单击锚点以便也调用 href?
【发布时间】:2011-10-18 11:29:13
【问题描述】:

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

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

我正在尝试在单击 Enter 键时将默认按钮设置为锚点:

$(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');   

谢谢

【问题讨论】:

  • 你不应该把js放在href中。用 onClick 代替。我不明白你在问什么。您希望在文本框中按 Enter 时与单击链接时发生同样的事情吗?
  • 感兴趣的人:jsfiddle.net/KhYtF
  • @Halil;谢谢,这解释了问题。

标签: javascript jquery html css ajax


【解决方案1】:

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 事件的一部分,但在浏览器中进行了硬编码。

【讨论】:

  • 不仅仅是 JQuery,DOM 的行为方式也一样。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:
    if (e.keyCode == 13) {                    
          $('#anchorTest').click();
    }
    

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

    【讨论】:

    • 不,当我在文本输入中按 Enter 时,它没有说“在 anchorTest 内”。 [Chrome 14]
    • 是的,这只是解释问题而不是解决方案。
    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 2020-11-10
    • 2020-02-16
    • 1970-01-01
    • 2013-08-27
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多