首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果执行了onclick,如何禁用HREF?

如果执行了onclick,如何禁用HREF?
EN

Stack Overflow用户
提问于 2013-03-26 02:28:47
回答 10查看 254.2K关注 0票数 110

我有一个同时设置了HREFONCLICK属性的锚点。如果单击并启用了Javascript,我希望它只执行ONCLICK而忽略HREF。同样,如果Javascript被禁用或不受支持,我希望它遵循HREF URL并忽略ONCLICK。下面是我正在做的一个例子,它将同时执行JS和跟随链接(通常执行JS,然后页面更改):

代码语言:javascript
复制
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>

最好的方法是什么?

我希望得到一个Javascript的答案,但我会接受任何方法,只要它有效,特别是如果这可以用PHP完成。我已经读过"a href link executes and redirects page before javascript onclick function is able to finish“了,但它只会延迟HREF,但并不能完全禁用它。我也在寻找更简单的东西。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2014-03-29 05:14:21

如果将return放在第一个onclick属性中,则可以使用第一个未编辑的解决方案:

代码语言:javascript
复制
<a href="https://example.com/no-js-login" onclick="return yes_js_login();">Log in</a>

yes_js_login = function() {
     // Your code here
     return false;
}

示例:https://jsfiddle.net/FXkgV/289/

票数 69
EN

Stack Overflow用户

发布于 2013-03-26 02:41:37

代码语言:javascript
复制
    yes_js_login = function() {
         // Your code here
         return false;
    }

如果您返回false,它应该阻止默认操作(转到href)。

编辑:很抱歉,这似乎不起作用,您可以执行以下操作:

代码语言:javascript
复制
<a href="http://example.com/no-js-login" onclick="yes_js_login(); return false;">Link</a>
票数 63
EN

Stack Overflow用户

发布于 2016-05-23 21:56:57

只需使用preventDefault禁用默认浏览器行为,并在您的HTML中传递event

<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>

代码语言:javascript
复制
yes_js_login = function(e) {
  e.preventDefault();
}
票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15622100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档