FileReader'的onloadend事件永远不会被触发
FileReader's onloadend event is never triggered
我想在上传图像之前制作一个小片段来预览它们:
$.fn.previewImg=function($on){
var input = this;
try{
if (this.is("input[type='file']")) {
input.change(function(){
var reader = new FileReader();
reader.onloadend = function(){
for (var i = 0; i < $on.length; i++) {
if (/img/i.test($on[i].tagName)) $on[i].src = reader.result;
else $on[i].style.bakgroundImage = "url("+reader.result+")";
}
};
});
}else throw new exception("Trying to preview image from an element that is not a file input!");
}catch(x){
console.log(x);
}
};
我这样称呼它:
$("#file").previewImg($(".preview_img"));
但是onloadend函数永远不会被调用。小提琴
实际上,您必须指定文件并指示fileReader读取它
下面是更正后的代码。
$.fn.previewImg=function($on){
var input = this;
try{
if (this.is("input[type='file']")) {
input.change(function(evt){
var reader = new FileReader();
console.log("Input changed");
reader.onloadend = function(){
console.log("onloadend triggered");
for (var i = 0; i < $on.length; i++) {
if (/img/i.test($on[i].tagName)) $on[i].src = reader.result;
else $on[i].style.bakgroundImage = "url("+reader.result+")";
}
};
//get the selected file
var files = evt.target.files;
//instruct reader to read it
reader.readAsDataURL(files[0]);
});
}else throw new exception("Trying to preview image from an element that is not a file input!");
}catch(x){
console.log(x);
}
};
$("#file").previewImg($(".preview_img"));
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 我的链接按钮的OnClick事件永远不会被触发
- Watchify 更新事件永远不会在 Virtualbox 中触发
- ios CordovaJavaScript焦点事件永远不会到来
- Touchstart 事件永远不会在网页加载的首次加载时在 Android Chrome 上触发
- IE8:提交事件永远不会被Extjs 4捕获
- jQuery事件方法:如何更改javascript'单击'事件到'永远开火;
- Jquery+IE10-附加到提交按钮的onclick事件永远不会触发
- FileReader'的onloadend事件永远不会被触发
- iOS Safari似乎永远不会触发滚动事件,如果鼠标下的元素只有"overflow-y: scroll&qu
- 加载数据事件永远不会触发
- Chrome扩展事件页面w/音频永远不会停止
- Excel任务窗格绑定数据更改事件永远不会结束
- 动态创建iframe的onload事件在IE中永远不会触发