如何在Anchor标记中执行onClick和href(<a>)</a>

时间:2014-02-11 14:40:35

标签: javascript html onclick anchor

我的链接如下:

<a href="www.google.com" onClick="someFunction()">Click me</a>

单击链接时,它正在执行JavaScript函数,但没有将我带到href链接。

任何想法如何实现同样的目标?

4 个答案:

答案 0 :(得分:9)

我认为最简单的方法是使函数返回true,这样在函数完成后,anchor标记的行为就像通常那样。这样,如果要使用新窗口,也可以使用target-attribute:

function myFunction() {
  alert("hello");
  return true;
}
<a href='http://www.google.com' onclick="myFunction();" target="google">Click me</a>

答案 1 :(得分:3)

我使用了jQuery,我希望它仍然可以理解:

<a href="www.google.com" onClick=someFunction()>Click me </a>

执行js函数但没有带我到href链接。

所以一种方法是在你的函数之后添加重定向:

function someFunction()
{
  ... your code ...

  window.location.href(   $(this).attr('href')  );   // <-----  HERE

}

评论后更新:

  function someFunction()
    {
      ... your code ...

     window.open(    $(this).attr('href') , '_blank'  );   // <-----  HERE

    }

答案 2 :(得分:1)

你可以通过几种方式做到这一点,

<div onclick = "function();"><a href = "link.com">link here</a> </div>

或者你可以使用onclick on a本身

<a href = "link.com" onclick = "function();"> link here</a>

您将onclick放在仅用于文本的标记内,将其放在第一个用作标记属性的标记中。

编辑:正如我上面的用户发布的那样,如果你想让href也执行,函数会返回true。

答案 3 :(得分:-2)

当在锚标记上附加点击事件时,它将由浏览器以“特殊”方式处理。

.click不会与'a'标签一起使用,因为浏览器不支持使用javascript进行“假点击”。

我的意思是,你不能用javascript“点击”一个元素。使用'a'标签,您可以触发其onClick事件,但链接不会更改颜色(对于访问过的链接颜色,在大多数浏览器中默认为紫色)。

因此,使用“a”标记使“click”事件无效是没有意义的,因为转到href属性的行为不是onClick事件的一部分,而是在浏览器中硬编码。

但你可以对onclick处理程序进行一些自定义,以便引用href链接。

让我们举一个例子:

$('a').click(function () {
                window.open($(this).attr('href'));                
});

以下是http://jsfiddle.net/4Qku8/使用jquery演示相同内容。

有关详细信息,请参阅this link