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 相关文章推荐
CSS和Javascript简单复习资料
Jun 29 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
整理Javascript基础语法学习笔记
Nov 29 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
js实现延迟加载的几种方法
Apr 24 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
Vue-路由导航菜单栏的高亮设置方法
Mar 17 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
Vue函数式组件-你值得拥有
May 09 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 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导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
js opener的使用详解
2014/01/11 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
vue-router传参用法详解
2019/01/19 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python定时执行指定函数的方法
2015/05/27 Python
Python文件及目录操作实例详解
2015/06/04 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
python中pip的安装与使用教程
2018/08/10 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
200行python代码实现2048游戏
2019/07/17 Python
python实现打砖块游戏
2020/02/25 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
Hotels.com南非:酒店预订
2017/11/02 全球购物
财务管理专业自荐信范文
2013/12/24 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
庆祝儿童节标语
2014/10/09 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
Spring整合Mybatis的全过程
2021/06/28 Java/Android