0

我正在开发一个留在网站本身的应用程序,我希望每个链接都调用一个函数。我试过这个:

HTML

<a href="index.php">link</a><br>
<a href="news.php">link 2</a>

Javascript

var a = document.getElementsByTagName("a");
for (var i = 0; i < a.length; i++) {
  a[i].onclick = function () {
    return false
  }
}

怎么了?它不起作用。

4

4 回答 4

3

由于它不是 jQuery,因此您应该使用该preventDefault函数。

var a = document.getElementsByTagName("a");
    for (var i = 0; i < a.length; i++) {
       a[i].onclick = function (e) {
       e.preventDefault();

       doSomething();
    }
}
于 2013-03-14T17:34:03.383 回答
1

编辑纯javascript解决方案

document.addEventListener("click", function(e){
    if (e.nodeName==="A"){
        e.preventDefault();
        return false;
    }
}, false);

这只会向文档添加一个事件,并仅阻止对锚元素的所有点击。

由于评论,我删除了旧的解决方案,这不是一个 jquery 问题

于 2013-03-14T17:35:12.433 回答
0

不要使用return false,它比你真正需要的要多。而是尝试event.preventDefault()

于 2013-03-14T17:35:06.023 回答
0
var a = document.getElementsByTagName("a").forEach(function (e) {
       e.onclick = function (a) {
           doSomething(a);
           return false;
       }
    }
}
于 2013-03-14T17:38:20.197 回答