![](/img/trans.png)
[英]Javascript, determine if an href click is a call to javascript function or not
[英]Convert jquery to javascript, call a function on href click
我正在尝试编写一个纯JavaScript函数(表示没有jquery)。当用户单击链接(标签)时,我想运行一个javascript函数。 我用Google搜索了一个解决方案,但没有找到我想要的。 下面是jquery解决方案,我想要一个纯JavaScript事件侦听器,它可以监听href点击。 标签没有附加ID或类。 例如: <a href='xxxx'>xxxx</a>
这就是我所拥有的(使用jQuery)
$('a').click(function(e) {
var regExp = new RegExp('//'+location.hostname+'($|/)');
var href = $(this).attr('href');
if (regExp.test(href)) { e.preventDefault();
var i = (((href.split('?')[1]).split('/')[0]).split('&')[1]).split('=')[1];
activityFeedClick(event,i); } });
我需要将上述jquery转换为javascript,基本上我需要将“ $('a').click(function(e)
”转换为纯JavaScript事件侦听器。
谢谢。
简短答案:
var myFunction = function(e) {
var regExp = new RegExp('//'+location.hostname+'($|/)');
var href = this.href; // please notice this replacement here
if (regExp.test(href)) {
e.preventDefault();
var i = (((href.split('?')[1]).split('/')[0]).split('&')[1]).split('=')[1];
activityFeedClick(event,i);
}
}
var links = document.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
links[i].addEventListener('click', myFunction);
}
您可以使用“ document.getElementsByTagName”获取DOM中所有“ a”元素的节点列表,然后循环遍历它们并使用“ addEventListener”。
这具有在不支持queryselector的浏览器中受支持的优势。
像这样在锚标记上添加onclick事件。
<a href="#" onclick="someFun(); return false;">click me</a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.