HTML锚链接 - href和onclick两者?

时间:2009-08-28 09:58:06

标签: javascript jquery html anchor

我想创建一个执行一些JavaScript的锚标记,然后继续前往href所采用的任何地方。调用执行我的JavaScript然后将window.locationtop.location设置为href位置的函数对我不起作用。

所以,想象一下我在页面上有一个id为“Foo”的元素。我想创作一个类似于:

的锚
<a href="#Foo" onclick="runMyFunction(); return false;">Do it!</a>

单击此按钮时,我想执行runMyFunction,然后将页面跳转到#Foo(不会导致重新加载 - 使用top.location会导致重新加载页面。)

连连呢?我很高兴使用jQuery,如果它可以帮助...

4 个答案:

答案 0 :(得分:119)

只是return true而已?

onClick代码的返回值决定了链接的固有点击操作是否得到处理 - 返回false表示未处理,但返回{{1}然后浏览器将在您的函数返回后继续处理它并转到正确的锚点。

答案 1 :(得分:27)

<a href="#Foo" onclick="return runMyFunction();">Do it!</a>

function runMyFunction() {
  //code
  return true;
}

通过这种方式,您将执行您的功能并且您将按照链接进行操作,您将在功能成功运行后完全按照链接进行操作。

答案 2 :(得分:7)

如果链接只应在函数运行成功时更改位置,那么执行onclick="return runMyFunction();"并在函数中返回true或false。

如果您只想运行该函数,然后让anchor标记完成其工作,只需删除return false语句。

作为旁注,您应该使用事件处理程序,因为内联JS不是一种非常理想的处理方式。

答案 3 :(得分:0)

制作干净的HTML结构时,可以使用它。

//Jquery Code
$('a#link_1').click(function(e){
  e . preventDefault () ;
  var a = e . target ;
  window . open ( '_top' , a . getAttribute ('href') ) ;
});

//Normal Code
element = document . getElementById ( 'link_1' ) ;
element . onClick = function (e) {
  e . preventDefault () ;
  
  window . open ( '_top' , element . getAttribute ('href') ) ;
} ;
<a href="#Foo" id="link_1">Do it!</a>