如何在页面上的所有超链接上调用函数
How do I call a function on all hyperlinks on my page?
我有一个包含多个超链接的网页。 他们都有一个"#
"的href
。 它们是动态生成的。单击其中任何一个时如何调用函数?我希望保留默认的超链接操作。
使用事件委派
window.onload = function () {
document.body.onclick = function (e) {
var target = e.target,
isLink = target.tagName.toLowerCase() === 'a';
if (isLink && target.getAttribute('href') === '#') {
lickFun(e);
}
};
function lickFun(e) {
console.log('this is link');
console.log('href equals #');
}
}
Example
这可以很容易地在普通的 JavaScript 中完成。 方法如下。
-
使用
document.querySelectorAll("a[href='#']
选择href
为"#
"的所有链接。 -
使用
for
循环遍历所有链接。 -
向所有链接添加事件侦听器。 就像这样(此代码段包括动态生成的链接):
document.body.innerHTML = '<a href="#">Click me to call a function.</a><br/>' +
'<a href="#">Click me to call the same function.<'/a><br/>' +
'<a href="#">Click me to call the same function.<'/a><br/>' +
'<a href="#">Click me to call the same function.<'/a><br/>' +
'<a href="#">Click me to call the same function.<'/a><br/>' +
'<a href="http://www.cnn.com">My "href" is not "#".<'/a><br/>' +
'<a href="http://espn.go.com">Neither is mine.<'/a>'
var linkListener = document.querySelectorAll("a[href='#']");
for (i=0;i<linkListener.length;i++){
linkListener[i].addEventListener("click", linkFunction);
}
function linkFunction(){
alert("You clicked a link with an '"href'" of '"#'".");
}
单击任何href
为" #
"的链接将调用linkFunction
。
如果你使用的是jquery,你可以这样做:
<a href="http://google.com">google</a>
<a href="#">test1</a>
<a href="#">test2</a>
<a href="#">test3</a>
<script>
$('a[href="#"]').bind('click',function(){
alert("Test");
})
</script>
相关文章:
- 如何在点击超链接时调用fullcalendar回调
- 如何在单击超链接时调用同一函数中定义的函数
- JQuery从超链接调用函数
- 如何从 asp.net 超链接控件调用 JavaScript
- 如何在包含 Eval 的 asp 超链接中调用 javascript 函数
- 如何在页面上的所有超链接上调用函数
- 如何从超链接将调用的事件发送到 JS 函数
- 通过动态超链接单击事件的调用方法传递对象或字符串
- 从gridview超链接调用具有多个参数的Javascript函数
- 如何在点击超链接时触发第二次AJAX调用
- 如何在超链接上调用javascript警报's点击,里面有一条包含单引号的消息
- 从超链接调用Javascript函数
- 在JQGrid中的一列中添加一个超链接,单击“超链接”将调用Jquery函数
- 在博客中调用一个外部javascript文件进行超链接
- javascript函数调用没有点击超链接按钮的原因
- 如何在超链接单击时调用REST DELETE方法
- 数据网格中的超链接控件调用javascript
- 如何在超链接文本点击上调用函数
- 基于它's调用超链接id定制弹出窗口
- 从同一页面中的HTML超链接调用特定DIV时出现问题