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 相关文章推荐
Prototype Class对象学习
Jul 19 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
Feb 07 Javascript
一个XML格式数据转换为图表的例子
Feb 09 Javascript
在myeclipse中如何加入jquery代码提示功能
Jun 03 Javascript
详解JavaScript中循环控制语句的用法
Jun 03 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
vue调用高德地图实例代码
Apr 28 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
分析javascript原型及原型链
Mar 18 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连接函数implode与分割explode的深入解析
2013/06/26 PHP
php过滤XSS攻击的函数
2013/11/12 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
js自定义trim函数实现删除两端空格功能
2018/02/09 Javascript
vue中监听返回键问题
2019/08/28 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
python里大整数相乘相关技巧指南
2014/09/12 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
python连接mysql实例分享
2016/10/09 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
个人授权委托书模板
2014/09/14 职场文书
专业见习报告范文
2014/11/03 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
Go 中的空白标识符下划线
2022/03/25 Golang
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript