简单的JavaScript版本的e.preventDefault(); [英] Plain JavaScript version of e.preventDefault();

查看:57
本文介绍了简单的JavaScript版本的e.preventDefault();的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用以下基于jQuery的脚本,您可以停止虚拟链接的默认操作,即:< a href =#>

With the following jQuery based script you can stop the default action of dummy links, ie: <a href="#">

$('a').click(function(e) {
  e.preventDefault();
});

这个剧本的普通版本是什么?

What would be the plain vanilla version of this script?

我不是JavaScript程序员,但我认为它可能是使用返回false; 。再说一遍,我可能完全错了。

I'm not a JavaScript programmer but I'm thinking it may be something that uses return false;. Again, I may be totally wrong.

提前感谢您的帮助。

推荐答案

你有 event.preventDefault()也可以在vanilla javascript中使用。以通用方式,您始终可以使用 return false 。如果附加事件处理程序,则保证在处理程序中传递事件agument,而不是使用 onclick 或元素的任何其他属性(在这种情况下,您应该依赖在处理程序中可用的特定事件对象,您可能无法在所有浏览器中获得,例如在IE中,您将使用 window.event )。

You have event.preventDefault() available in vanilla javascript as well. In a generic way you can always use return false. If you attach an event handler you are guaranteed to get event agument passed in the handler as opposed to using the onclick or any other attributes of the element (In which case you should rely on the specific event object available in side the handler which you may not get in all browsers, like in IE you would use window.event).

例如: -

  document.getElementById('someId').addEventListener('click', function(e){ //say this is an anchor
         //do something
        e.preventDefault();
   });

因此对于所有锚点:

 var anchors = document.getElementsByTagName('a');
 for(i=0, len=anchors.length; i<len; i++){
     anchors[i].addEventListener('click', function(e){e.preventDefault();});
 }

这篇关于简单的JavaScript版本的e.preventDefault();的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆