将函数应用于页面上的所有链接
Apply A Function to All Links on Page
我在页面上有我的所有链接,如下所示:
<a href="http://example.com">Example</a>
但是现在我想要所有链接与以下点击功能像这样:
<a onclick="show();" href="http://example.com">Example</a>
有人能告诉我jquery或javascript代码将上面的函数添加到正文上的所有链接中吗?谢谢
一些答案建议使用jQuery的click()
函数。只要您不希望使用javascript动态添加新链接,就可以了。
此单击处理程序将绑定到<body>
元素上,并在单击其中的<a>
元素时激发。与$('a').click(...)
相比,这种方法的优点是所有<a>
标签都不需要出现在页面加载上:
$(function () {
$('body').on('click', 'a', function (event) {
event.preventDefault();
show();
});
});
Fiddle:http://jsfiddle.net/Lubf6gjw/2/
编辑:以下是如何使用纯javascript:进行编辑
document.querySelector('body')
.addEventListener('click', function (event) {
if(event.target.tagName === 'A') {
event.preventDefault();
show();
}
});
http://jsfiddle.net/pymwsgke/1/
$(function(){
$("a").click(function(){
show();
}
});
如果你想阻止浏览器遵循href,你可以添加一个preventDefault调用
$(function(){
$("a").click(function(e){
e.preventDefault();
show();
}
});
注意,这实际上不会将onclick=
附加到<a>
标签。如果你想这样做,你可以这样做:
$("a").each(function(){
$(this).attr("onclick", $(this).attr("onclick")+";show();");
});
使用纯Js
function show (event) {
event.preventDefault();
// do somethink
}
var anchors = document.querySelectorAll("a");
for(var a = 0; a < anchors.length; a++) {
anchors[a].addEventListener("click",show,false)
}
相关文章:
- 在什么情况下需要同时使用compile&链接函数的角度
- jquery:如何链接函数
- 角度指令's链接函数未被调用
- 如何在jQuery中将链接函数分配给变量
- 如何在指令链接函数中使用从控制器传递的筛选器
- 从控制器Angularjs调用链接函数
- 从指令链接函数监视控制器作用域
- JavaScript - 创建可链接函数时的最佳方法是什么
- 如何将函数绑定到使用链接函数创建 HTML 的角度指令
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 如何使用RXJS动态链接函数调用
- ES6承诺:如何用参数链接函数
- 如何创建(可选)像Lodash中那样的可链接函数
- 如何将所选元素传递给'这'在链接函数中
- 调用在Jquery中未作为链接函数工作
- 这个链接函数如何知道“;tabsCtrl"参考文献
- JS:将单参数函数转换为可链接函数
- 在指令的链接函数中修改事件中的范围变量
- 如何将服务注入链接函数包含指令
- 元素在调用链接函数时不在 DOM 中