使用JavaScript为一张图片设置备选路径的方法


Posted in Javascript onJanuary 04, 2017

在做网页开发的时候,有时候希望给图片设置一个备选路径,即,当src属性对应的主路径加载失败的时候,图片可以马上切换到备选路径。这样,即使主路径失效了,显示备用路径也不会影响网页的正常体验。

注意到网页中一张图片加载失败会触发error事件,因此可以使用DOM模型中的load和error事件实现这一效果。

src1='main/image.jpg' //主路径
src2='another/image.jpg' //备用路径

jQuery 1.8以前

使用load和error方法捕捉事件

$('#imgMap' ).attr("src",src1).load(function(){console.log("图片加载成功")
        }).error(function(){
          console.log("图片加载失败,切换路径")
          $('#imgMap').attr('src',src2)    
        });

jQuery 1.8

由于jQuery1.8之后load()方法和error()方法已经废弃了,因此可以使用bind方法绑定事件

$('#img').attr("src",src1).bind( "load", function() {
 console.log("图片加载成功")
}).bind("error",function(){
  console.log("图片加载失败,切换路径")
      $('#img').attr('src',src2)  
});

jQuery 3.0

jQuery3.0以后,统一使用on方法捕获事件

$('#img').attr("src",src1).on( "load", function() {
 console.log("图片加载成功")
}).on("error",function(){
  console.log("图片加载失败,切换路径")
      $('#img').attr('src',src2)  
});

JavaScript

不想使用jQuery插件时,也可以调用JavaScript原生方法。使用addEventListener方法监听事件。

var Image = document.getElementById('img');
Image.src=src1;
Image.addEventListener('load', function(event) {
       console.log("图片加载成功")
});
Image.addEventListener('error', function(event) {
      console.log("图片加载失败,切换路径")
       Image.src=src2;
});

以上所述是小编给大家介绍的使用JavaScript为一张图片设置备选路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一行代码告别document.getElementById
Jun 01 Javascript
web性能优化之javascript性能调优
Dec 28 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 Javascript
jquery实现商品拖动选择效果代码(自写)
May 28 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
Apr 01 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
解决Vue打包之后文件路径出错的问题
Mar 06 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
Jun 04 Javascript
laypage+SpringMVC实现后端分页
Jul 27 Javascript
vue 实现锚点功能操作
Aug 10 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
Aug 12 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
Jan 04 #Javascript
AngularJS入门示例之Hello World详解
Jan 04 #Javascript
详解AngularJS验证、过滤器、指令
Jan 04 #Javascript
Bootstrap3 图片(响应式图片&图片形状)
Jan 04 #Javascript
javascript 注释代码的几种方法总结
Jan 04 #Javascript
JS数组返回去重后数据的方法解析
Jan 03 #Javascript
js实现复选框的全选和取消全选效果
Jan 03 #Javascript
You might like
php中cookie的作用域
2008/03/27 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
PDO::_construct讲解
2019/01/27 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
js表格分页实现代码
2009/09/18 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
vue实现树形结构样式和功能的实例代码
2019/10/15 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
python3.0 字典key排序
2008/12/24 Python
Python可变参数函数用法实例
2015/07/07 Python
Python利用ansible分发处理任务
2015/08/04 Python
python 剪切移动文件的实现代码
2018/08/02 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
群教个人对照检查材料
2014/08/20 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android
关于Vue中的options选项
2022/03/22 Vue.js