请问各位前辈,下面这段简单的代码,如果点击“新浪”的超链,执行出来的顺序是怎样的?
<input type="button" name="Submit" value="按钮" onclick="return alert('哈哈')"/>
<a href="http://www.baidu.com" onclick="return alert('百度')">百度</a>
<a href="http://www.sina.com.cn" onclick="return alert('新浪')">新浪</a>
<a href="http://www.sohu.com.cn" onclick="return alert('搜狐')">搜狐</a>
我想知道原因,为什么会以这个顺序运行呢?一定要传授小弟具体原因啊!感激不尽!高分答谢!
<input type="button" name="Submit" value="按钮" onclick="return alert('哈哈')"/>
<a href="http://www.baidu.com" onclick="return alert('百度')">百度</a>
<a href="http://www.sina.com.cn" onclick="return alert('新浪')">新浪</a>
<a href="http://www.sohu.com.cn" onclick="return alert('搜狐')">搜狐</a>
我想知道原因,为什么会以这个顺序运行呢?一定要传授小弟具体原因啊!感激不尽!高分答谢!
不知道是不是楼主没说清楚意思
先弹出 "新浪"的窗口,然后跳转到新浪的网页。
----
原因很简单啊:return alert('新浪'); 在你点击确定后,返回的true值。所以标签a还要继续执行它的默认行为,也就是跳转到href指定的路径去。
如果你想点击后就停止事件继续往下执行的话,可以这样<a href="http://www.sina.com.cn" onclick="alert('新浪');return false;">新浪 </a>
对于这些有默认动作的对象如果定义了onclick事件,那么就
首先执行onclick指定的函数,如果没有返回false,执行完之后
执行默认动作。所以如果你想阻止默认动作就要返回一个false.
比如你可以用下面的代码阻止提交按钮和超链接的默认动作<form action="http://www.baidu.com" method="post">
<input type="submit" name="btnSubmit" value="提交" onclick="alert(1);return false"/>
<a href="http://www.baidu.com" onclick="alert('百度');return false">百度 </a>
<a href="http://www.sina.com.cn" onclick="alert('新浪');return false">新浪 </a>
<a href="http://www.sohu.com.cn" onclick="alert('搜狐');return false">搜狐 </a>
</form>
可是实际的执行效果是:
先弹出“新浪”框,然后跳转到新浪网页,然后弹出“哈哈”框,这个是为啥嘞?
您使用的return false方法,必须得把input放在form里,type=submit才行么?
谢谢谢谢
---
不会吧??button和a是兄弟关系,不存在事件冒泡啥的。咋可能引发button的事件呢?
我在本地测试也没发生这种情况~~
万恶的百家争鸣的浏览器!!
你早点这样问不就好了
<a href="http://www.sina.com.cn" onclick="alert('新浪');return false">新浪 </a>
或者你直接去掉href="http://www.sina.com.cn"就可以了啊