A标签触发onclick事件而不跳转的多种解决方法javascript
一个标签仅仅是要触发onclick行为,遇到了A标签触发onclick事件时不执行跳转:css
在web页面开发时,咱们常常会遇到下列状况:
1.一个标签仅仅是要触发onclick行为;
2.表现上要有鼠标的pointer指针显示,或者其余相似a标签的视觉效果。
好比执行删除操做时,为了不误操做,咱们要弹出对话框让用户肯定是否删除。所以咱们常常会用连接<a></a>形式代替<button> 触发onclick事件。 html
<script type="text/javascript">
function del(){
if(confirm("肯定删除该记录?")){
parent.window.location="执行删除.jsp";
return true;
}
return false;
}
</script>
<a href="" target="mainFrame" class="STYLE4" onclick="del()" >删除</a>
java
这样作的后果是js代码会跳转到"执行删除.jsp"页面,而<a>标签也会跳转打开一个空页面。由于html自己对 <a>标签的href属性作了处理,因此就会先执行咱们本身定义的方法,接着再运行它自身的方法(跳转的方法)。
解决方法主要有四种,以下:
1. 不用a标签,设定css或用js来表现(有点复杂);
2. 用a标签,onclick属性或onclick事件中返回false;(我的喜欢)
如:<a href="" target="mainFrame" class="STYLE4" onclick="del();return false" >删除</a>
这是个执行顺序的问题,<a>这个标签的执行顺序应该是先执行onclick 的脚本,最后才进行href参数指定页面的跳转。在onclick中返回false,就能够停止<a>标签的工做流程,也就是不让页面跳转到href参数指定的页面。
3. 用href="javascript:void(0)"这种伪协议;(这种伪协议,少写的好)
即:<a href="javascript:void(0)" target="mainFrame" class="STYLE4" onclick="del()" >删除</a>
4. <a href="#" class="STYLE4" onclick="del()" >删除</a>。(老是跳转到当前页面顶部,当页面内容较多时,仍是会有跳转的感受)web