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中cookie的使用详细分析
May 28 Javascript
javascript 学习之旅 (2)
Feb 05 Javascript
jQuery 阴影插件代码分享
Jan 09 Javascript
JavaScript中的字符串操作详解
Nov 12 Javascript
jQuery多媒体插件jQuery Media Plugin使用详解
Dec 19 Javascript
jquery操作select方法汇总
Feb 05 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
Bootstrap开关(switch)控件学习笔记分享
May 30 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 Javascript
在vue中created、mounted等方法使用小结
Jul 21 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
用户的详细注册和判断
2006/10/09 PHP
一个用于网络的工具函数库
2006/10/09 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
php微信公众号开发之简答题
2018/10/20 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
Vue实现购物车功能
2017/04/27 Javascript
如何使用angularJs
2017/05/08 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
python 中if else 语句的作用及示例代码
2018/03/05 Python
python 读入多行数据的实例
2018/04/19 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
2019/08/23 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
Python小白垃圾回收机制入门
2020/06/09 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
中专生求职自荐信范文
2013/12/22 职场文书
小学语文教研活动总结
2014/07/01 职场文书
财务工作个人总结
2015/02/27 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
深度学习tensorflow基础mnist
2021/04/14 Python