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