我正在开发一个留在网站本身的应用程序,我希望每个链接都能调用一个函数。我试过这个:
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
}
}
有什么问题?它不起作用。
答案 0 :(得分:3)
因为它不是jQuery,所以你应该使用preventDefault
函数。
var a = document.getElementsByTagName("a");
for (var i = 0; i < a.length; i++) {
a[i].onclick = function (e) {
e.preventDefault();
doSomething();
}
}
答案 1 :(得分:1)
编辑纯JavaScript解决方案
document.addEventListener("click", function(e){
if (e.nodeName==="A"){
e.preventDefault();
return false;
}
}, false);
这只会向文档中添加一个事件,并且仅阻止对锚元素的所有点击。
由于评论,我删除了旧解决方案,这不是一个jquery问题
答案 2 :(得分:0)
不要使用return false
,它比你真正需要的更多。而是尝试event.preventDefault()
答案 3 :(得分:0)
var a = document.getElementsByTagName("a").forEach(function (e) {
e.onclick = function (a) {
doSomething(a);
return false;
}
}
}