运行功能后取消绑定preventDefault

时间:2018-07-07 22:05:19

标签: javascript function preventdefault unbind

我有一个<a>,当我单击它时,我想先运行一个函数,然后<a> URL将我带到另一个页面。

HTML:

<a class="goTo" href="./projects.html"> Projects </a>
<a class="goTo" href="./about.html"> About</a>

JS

$('.goTo').click(function(e) {
  e.preventDefault()
  return x()
})

2 个答案:

答案 0 :(得分:0)

只需删除e.preventDefault()

事件处理程序在默认操作之前运行(在链接的情况下,默认操作是使浏览器导航到另一个页面)。

$('.goTo').click(function(e) {
  return x()
})

function x() {
  alert("Function x");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="goTo" href="http://example.com"> Example </a>

答案 1 :(得分:-1)

HTML:

<a class="goTo" href="./projects.html" onClick="doSomething(this)"> Projects</a>
<a class="goTo" href="./about.html" onClick="doSomething(this)"> About</a>

Javascript:

function doSomething(element){
  someFunction();
  //use element.href to get the href attribute of the element
  location.href = element.href;
}

jQuery(替代):

$('.goTo').click(function(e){
  someFunction();
  location.href = $(this).attr('href');
});

JSFiddle:http://jsfiddle.net/nt0xfp48/1/