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 相关文章推荐
IE bug table元素的innerHTML
Jan 11 Javascript
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
javascript学习笔记(六) Date 日期类型
Jun 19 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
Oct 17 Javascript
JavaScript实现定时页面跳转功能示例
Feb 14 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
Mar 10 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
May 25 Javascript
JavaScript实现简单评论功能
Aug 17 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 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 Global定义全局变量使用说明
2013/08/15 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
javascript学习之json入门
2016/12/22 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
使用python实现rsa算法代码
2016/02/17 Python
Python函数中不定长参数的写法
2019/02/13 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
python内存管理机制原理详解
2019/08/12 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
python try...finally...的实现方法
2020/11/25 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
环保倡议书怎么写
2014/05/16 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
商品陈列协议书
2014/09/29 职场文书
飞越疯人院观后感
2015/06/09 职场文书
焦点访谈观后感
2015/06/11 职场文书
婚宴主持词
2015/06/30 职场文书
Sql Server之数据类型详解
2022/02/28 SQL Server
Python OpenCV形态学运算示例详解
2022/04/07 Python