A标签触发onclick事件而不跳转的多种解决方法


Posted in Javascript onJune 27, 2013

在web页面开发时,我们经常会遇到下列情况:

1.一个标签仅仅是要触发onclick行为;
2.表现上要有鼠标的pointer指针显示,或者其他类似a标签的视觉效果。
比如执行删除操作时,为了避免误操作,我们要弹出对话框让用户确定是否删除。因此我们经常会用链接<a></a>形式代替<button> 触发onclick事件。
代码如下:

<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>

这样做的后果是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>。(总是跳转到当前页面顶部,当页面内容较多时,还是会有跳转的感觉)

Javascript 相关文章推荐
js静态方法与实例方法分析
Jul 04 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 Javascript
Extjs实现进度条的两种便捷方式
Sep 26 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
Mar 06 Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
微信小程序如何实现点击图片放大功能
Jan 21 Javascript
JavaScript实现简单进度条效果
Mar 25 Javascript
TS 类型兼容教程示例详解
Sep 23 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
Jun 27 #Javascript
JQuery实现表格中相同单元格合并示例代码
Jun 26 #Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
Jun 26 #Javascript
jQuery实现类似淘宝购物车全选状态示例
Jun 26 #Javascript
如何让页面加载完成后执行js
Jun 26 #Javascript
文件编码导致jquery失效的解决方法
Jun 26 #Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 #Javascript
You might like
php实现的CSS更新类实例
2014/09/22 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
js入门之Function函数的使用方法【新手必看】
2016/11/22 Javascript
Three.js基础部分学习
2017/01/08 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
python多线程用法实例详解
2015/01/15 Python
Python中random模块生成随机数详解
2016/03/10 Python
python删除文本中行数标签的方法
2018/05/31 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
商场主管竞聘书
2014/03/31 职场文书
教师暑期培训感言
2014/08/15 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Golang 切片(Slice)实现增删改查
2022/04/22 Golang