首页 > a标签的取消默认行为

a标签的取消默认行为

<a href="http://www.baidu.com/" onclick="func()" target="_blank">123</a>

function func(){
    alert(123);
    return false;
}
上述代码仍然跳转到百度。为什么
<a href="http://www.baidu.com/" onclick="func();return false;" target="_blank">123</a>
就可以取消跳转的默认行为。写在函数里就不行?

<a href="javascript:;" onclick="check()">点击我</a>

改成

onclick="return func()"

你的写法只是

domObj.clickHandler = function() { func(); return undefined;}

<a href="javascript:;" onclick="func()" target="_blank">123</a>
<a href="javascript:void();" onclick="func()" target="_blank">123</a>

HTML 元素里面直接填写事件有关属性,属性值为 JavaScript 代码,即可在触发该事件的时候,执行属性值的内容。

<a href="http://www.baidu.com/" onclick="func()" target="_blank">123</a>

点击链接的时候,执行onclick里面的代码,注意是执行里面的代码,而不是把func当作事件处理程序,虽然func()返回了falseonclick里面的代码并没有return false,没有取消默认行为。


onclick="fun()"即使fun() return false,返回值过来就是onclick="flase",因此就然并卵了。楼上的onclick="return fun()"是OK的,因为返回值过来就变成了onclick="return false"


非IE的用"e.preventDefault();",IE的用"window.event.returnValue = false;"或者使用return false也可以。


onclick后面的js如果不是函数名的话,会被包裹到一个匿名函数中进行调用。
相当于

obj.onclick= function() { func(); }

你在这里面怎么返回false也无济于事啊。


你可以直接这样啊

<a href="javascript:void(0)" onclick="check()">点击我</a>

你首先知道怎么执行的
自定义事件>默认事件>冒泡
比如这里的点击事件,你还可以拆分鼠标移入,鼠标按下,鼠标弹起等等..这是需要考虑到具体情况的
简单的说 他有一个事件event对象,而这个event实现一个接口then,从而实现链式调用event

如果仅仅阻止默认 event.returnvalue=false;
jq库有e.stopproxxxxx阻止冒泡

------------------fix----------------------
其实上面所说的还是不准确的.可以去试试看异步编程 promise/A


你需要取消a的默认行为.func(e)

e.preventDefault()

<a href="www.baidu.com" id="alink">点击了我</a>

<script> window.onload=function(){ var link=document.getElementById("alink"); link.onclick=function(e){ alert("ok"); return false; //e.preventDefault();//这个也可以 } } </script>
【热门文章】
【热门文章】