简体   繁体   English

是否可以使event.preventDefault()默认发生?

[英]Is it possible to make event.preventDefault() happen by default?

I'm working on a project where pretty much every a element is connected to JavaScript via the onclick handler, using just a blank href value. 我工作的地方,几乎每一个项目a元素是通过连接到的JavaScript onclick处理程序,只用一个空href值。 I don't want to follow the href at all, so I've been using event.preventDefault() . 我根本不想遵循href,因此我一直在使用event.preventDefault() There are two main ways I've used: 我使用了两种主要方法:

  • With preventDefault() happening in onclick: 随着preventDefault()发生在onclick中:
    HTML: onclick="event.preventDefault();onclickHandler();" HTML: onclick="event.preventDefault();onclickHandler();"
    JS: function onclickHandler() { ... JS: function onclickHandler() { ...

  • With preventDefault() happening in the JavaScript function: JavaScript函数中发生了preventDefault()
    HTML: onclick="onclickHandler(event)" HTML: onclick="onclickHandler(event)"
    JS: function onclickHandler(event) { event.preventDefault(); ... JS: function onclickHandler(event) { event.preventDefault(); ... function onclickHandler(event) { event.preventDefault(); ...

Neither of these seems ideal to me. 这些对我来说都不是理想的。 With the first, I have to remember to place the call to preventDefault() in every onclick handler, with risk of missing one. 对于第一个,我必须记住在每个 onclick处理程序中放置对preventDefault()的调用,可能会丢失一个preventDefault() With the second, there's an extra parameter going into the function that doesn't significantly add to the function's, well, function. 在第二个函数中,函数中增加了一个额外的参数,但不会明显增加该函数的功能。

What I'm trying to do is configure that a tag to use preventDefault() without my having to explicitly tell it to do so. 我正在尝试做的是配置a标签以使用preventDefault()而不必明确告诉它这样做。 Can it be done? 能做到吗

Remove href option from a tag, so it won't act as a hyperlink. 删除href从选择a标签,所以它不会作为一个超链接。 If you want pointer to change on hover then use CSS. 如果要在悬停时更改指针,请使用CSS。

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

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