简体   繁体   English

将jquery转换为javascript,在href点击上调用函数

[英]Convert jquery to javascript, call a function on href click

I am trying to write a pure JavaScript function (means no jquery).When a user clicks a link ( a tag) I wanted to run a javascript function. 我正在尝试编写一个纯JavaScript函数(表示没有jquery)。当用户单击链接(标签)时,我想运行一个javascript函数。 I Googled for a solution but did't find what I was looking for. 我用Google搜索了一个解决方案,但没有找到我想要的。 Below is the jquery solution, I want a pure JavaScript event listener which listens to a href click. 下面是jquery解决方案,我想要一个纯JavaScript事件侦听器,它可以监听href点击。 There is no id or class attached to tags. 标签没有附加ID或类。 ex: <a href='xxxx'>xxxx</a> 例如: <a href='xxxx'>xxxx</a>

This is what I have (using jquery) 这就是我所拥有的(使用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);  } });

I need to convert the above jquery to javascript, basically I need to convert " $('a').click(function(e) " this to a pure JavaScript event listener. 我需要将上述jquery转换为javascript,基本上我需要将“ $('a').click(function(e) ”转换为纯JavaScript事件侦听器。

Thanks. 谢谢。

Short answer: 简短答案:

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);
}

You can use "document.getElementsByTagName" to get a nodelist of all "a" elements in the DOM, then loop through them and use "addEventListener". 您可以使用“ document.getElementsByTagName”获取DOM中所有“ a”元素的节点列表,然后循环遍历它们并使用“ addEventListener”。

This has the advantage of being supported in browsers without support for queryselector. 这具有在不支持queryselector的浏览器中受支持的优势。

像这样在锚标记上添加onclick事件。

<a href="#" onclick="someFun(); return false;">click me</a>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM