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 相关文章推荐
jQuery中removeClass()方法用法实例
Jan 05 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
jQuery实现二级下拉菜单效果
Jan 05 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 Javascript
vue 之 css module的使用方法
Dec 04 Javascript
原生JS实现留言板功能
Feb 08 Javascript
在vue中使用console.log无效的解决
Aug 09 Javascript
javascript实现随机抽奖功能
Dec 30 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
jQuery替换字符串(实例代码)
2013/11/13 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
python实现AdaBoost算法的示例
2020/10/03 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
项目经理的岗位职责
2013/11/23 职场文书
中层干部竞争上岗演讲稿
2014/01/13 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
个人委托书怎么写
2014/09/17 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
商业门面租房协议书
2014/11/25 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis