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 表单验证扩展代码(二)
Oct 20 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
Jan 11 Javascript
js获取光标位置和设置文本框光标位置示例代码
Jan 09 Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
JS实现在网页中弹出一个输入框的方法
Mar 03 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
Oct 09 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
Nov 18 Javascript
node学习记录之搭建web服务器教程
Feb 16 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
php 阴历-农历-转换类代码
2012/01/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
PHP实现的堆排序算法详解
2017/08/17 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
Javascript 继承实现例子
2009/08/12 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
js实现微信分享代码
2020/10/11 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
JS实现拼图游戏
2021/01/29 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
python文件比较示例分享
2014/01/10 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
pywinauto自动化操作记事本
2019/08/26 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
Java平台和其他软件平台有什么不同
2015/06/05 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
高中毕业自我鉴定
2013/12/13 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL