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通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
判断日期是否能跨月查询的js代码
Jul 25 Javascript
关于延迟加载JavaScript
May 05 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
Jun 08 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
Nov 03 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
JavaScript基础之this和箭头函数详析
Sep 05 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
Apr 14 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 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
多重?l件?合查?(一)
2006/10/09 PHP
php下Memcached入门实例解析
2015/01/05 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
php实现评论回复删除功能
2017/05/23 PHP
javascript删除option选项的多种方法总结
2013/11/22 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
canvas的神奇用法
2017/02/03 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
Python学习笔记_数据排序方法
2014/05/22 Python
Python实现针对中文排序的方法
2017/05/09 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
J2EE模式面试题
2016/10/11 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
意向书范本
2014/07/29 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
行政复议决定书
2015/06/24 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript