<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的默认行为.func(e)
HTML
元素里面直接填写事件有关属性,属性值为JavaScript
代码,即可在触发该事件的时候,执行属性值的内容。点击链接的时候,执行
onclick
里面的代码,注意是执行里面的代码,而不是把func
当作事件处理程序,虽然func()
返回了false
,onclick
里面的代码并没有return false
,没有取消默认行为。onclick后面的js如果不是函数名的话,会被包裹到一个匿名函数中进行调用。
相当于
你在这里面怎么返回false也无济于事啊。
<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>非IE的用"e.preventDefault();",IE的用"window.event.returnValue = false;"或者使用return false也可以。
onclick="fun()"即使fun() return false,返回值过来就是onclick="flase",因此就然并卵了。楼上的onclick="return fun()"是OK的,因为返回值过来就变成了onclick="return false"
你可以直接这样啊
你首先知道怎么执行的
自定义事件>默认事件>冒泡
比如这里的点击事件,你还可以拆分鼠标移入,鼠标按下,鼠标弹起等等..这是需要考虑到具体情况的
简单的说 他有一个事件event对象,而这个event实现一个接口then,从而实现链式调用event
如果仅仅阻止默认 event.returnvalue=false;
jq库有e.stopproxxxxx阻止冒泡
------------------fix----------------------
其实上面所说的还是不准确的.可以去试试看异步编程 promise/A