Sup*_*tar 80 html javascript anchor onclick href
我有一个锚都 HREF
和ONCLICK
属性进行设置.如果单击并启用Javascript,我希望它只执行ONCLICK
并忽略HREF
.同样,如果Javascript被禁用或不受支持,我希望它遵循HREF
URL并忽略ONCLICK
.下面是我正在做的一个例子,它将执行JS并同时跟踪链接(通常执行JS然后页面更改):
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我希望得到一个Javascript答案,但我会接受任何方法,只要它有效,特别是如果这可以用PHP完成.我已经读过" 一个href链接执行并在javascript onclick函数能够完成之前重定向页面 ",但它只是延迟HREF
,但并没有完全禁用它.我也在寻找更简单的东西.
Chr*_*ier 56
yes_js_login = function() {
// Your code here
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果返回false,则应该阻止默认操作(转到href).
编辑:抱歉这似乎不起作用,您可以执行以下操作:
<a href="http://example.com/no-js-login" onclick="yes_js_login(); return false;">Link</a>
Run Code Online (Sandbox Code Playgroud)
小智 43
如果先在onclick
属性中放置return,则可以使用第一个未编辑的解决方案:
<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;
}
Run Code Online (Sandbox Code Playgroud)
示例:https://jsfiddle.net/FXkgV/289/
Buk*_*ksy 31
只需禁用默认浏览器行为preventDefault
并event
在HTML中传递即可.
<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>
yes_js_login = function(e) {
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
And*_*rew 14
<a href="http://www.google.com" class="ignore-click">Test</a>
Run Code Online (Sandbox Code Playgroud)
用jQuery:
<script>
$(".ignore-click").click(function(){
return false;
})
</script>
Run Code Online (Sandbox Code Playgroud)
用JavaScript
<script>
for (var i = 0; i < document.getElementsByClassName("ignore-click").length; i++) {
document.getElementsByClassName("ignore-click")[i].addEventListener('click', function (event) {
event.preventDefault();
return false;
});
}
</script>
Run Code Online (Sandbox Code Playgroud)
您可以将类分配给.ignore-click
您喜欢的元素,并忽略这些元素的单击
mis*_*non 13
你可以使用这个简单的代码:
<a href="" onclick="return false;">add new action</a><br>
Run Code Online (Sandbox Code Playgroud)
小智 5
如果你传递一个这样的事件参数,它会更简单:
<a href="#" onclick="yes_js_login(event);">link</a>
Run Code Online (Sandbox Code Playgroud)
function yes_js_login(e) {
e.stopImmediatePropagation();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
198133 次 |
最近记录: |