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 相关文章推荐
Script的加载方法小结
Jan 12 Javascript
瀑布流布局并自动加载实现代码
Mar 12 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
jquery轮播的实现方式 附完整实例
Jul 28 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
Dec 30 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
Mar 07 Javascript
vue自定义tap指令及tap事件的实现
Sep 18 Javascript
Vue源码解析之Template转化为AST的实现方法
Dec 14 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 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表单提交实例讲解
2015/11/12 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
Python单例模式实例详解
2017/03/01 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Pygame框架实现飞机大战
2020/08/07 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
天网面试题
2013/04/07 面试题
运动会通讯稿400字
2014/01/28 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
环境建设实施方案
2014/03/14 职场文书
大学生创业事迹材料
2014/12/30 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python