如何使用jQuery来处理图片坏链具体实现步骤


Posted in Javascript onMay 02, 2013

今天我为大家讲解一个页面开发过程中的一个小技巧:如何处理裂图
也就是说如果这个图片没有加载成功了会怎么办?
第一步:HTML页面里:

<!DOCTYPE html> 
<html> 
<head> 
<title>gbin1</title> 
<meta charset=utf-8 /> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> 
</script> 
</head> 
<body> 
<img src="broken.jpg"/> 
</body> 
</html>

运行这个页面大家会看到一个坏掉的图。
第二部:是一个JavaScript,它的功能是:如果图片坏掉了,就弹出一个出错提示:
$(function(){ 
$('img').error(function(){ 
alert('error'); 
}); 
});

运行一下,大家看到了吗?
第三部:接下来,我们想要提高界面的友好效果,我们可以调用attr用一张默认图片替换掉这张裂图:
$(function(){ 
$('img').error(function(){ 
//alert('error'); 
$(this).attr('src','http://www.gbtags.com/gb/networks/themes/img/logohover.png'); 
}); 
});

大家看到极客标签的logo图标没?这样就可以实现对裂图的处理了。
补充几句:其实error在jquery1.8以前是提倡使用的,1.9之后不太提倡了,但是仍然可以使用,个人觉得还挺方便的。
大家也可以换用下面这个方法:(error换成了on,后面加一个参数)
$(function(){ 
$('img').on('error',function(){ 
alert('error'); 
$(this).attr('src','http://www.gbtags.com/gb/networks/themes/img/logohover.png'); 
}); 
});

其实前一个error方法,是on方法的快捷方式
对了,如果你在本地测试error这个方法的话,需要启动服务器,因为error方法需要检查资源是否可用。比如这个test.html,需要在启动服务器后,在浏览器中输入http://localhost:8080/test.html 才可以看到效果。
希望能对大家有帮助,3Q!
Javascript 相关文章推荐
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
jquery DataTable实现前后台动态分页
Jun 17 jQuery
详解vuejs之v-for列表渲染
Jun 22 Javascript
初探JavaScript 面向对象(推荐)
Sep 03 Javascript
Vue完整项目构建(进阶篇)
Feb 10 Javascript
Vue2.0 http请求以及loading展示实例
Mar 06 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
jQuery仿Excel表格编辑功能的实现代码
May 01 #Javascript
JavaScript 实现类的多种方法实例
May 01 #Javascript
Json字符串转换为JS对象的高效方法实例
May 01 #Javascript
Jquery post传递数组方法实现思路及代码
Apr 28 #Javascript
javascript中的onkeyup和onkeydown区别介绍
Apr 28 #Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 #Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
Apr 28 #Javascript
You might like
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
Vuex 入门教程
2018/01/10 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
Python yield 小结和实例
2014/04/25 Python
浅谈python多线程和队列管理shell程序
2015/08/04 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python deque模块简单使用代码实例
2020/03/12 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
python中的unittest框架实例详解
2021/02/05 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
闭幕式主持词
2014/04/02 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
百万英镑观后感
2015/06/09 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书