我有以下html设置,无法解决此问题。
单击html文档中的按钮时,会出现一个元素
<div id='wrapper'>
<input id='fileUpload' name='fileUpload' type='file' onchange='uploadpreview(this.id)' multiple />
<br />
<div id='image-holder'></div>
</div>
使用函数
添加function add(){
$j("<?php echo($divoutput)?>").insertBefore("#addbox");
}
(php代码中有html格式)。
然而,当这样做时,javascript函数(已经在html文档中并且不会通过代码添加)不起作用:
$("#fileUpload").on('change', uploadpreview() {
//Get count of selected files
var countFiles = upload[0].files.length;
var imgPath = upload[0].value;
var extn = imgPath.substring(imgPath.lastIndexOf('.') + 1).toLowerCase();
var image_holder = $("#image-holder");
image_holder.empty();
if (extn == "gif" || extn == "png" || extn == "jpg" || extn == "jpeg") {
if (typeof (FileReader) != "undefined") {
//loop for each file selected for uploaded.
for (var i = 0; i < countFiles; i++) {
var reader = new FileReader();
reader.onload = function (e) {
$("<img />", {
"src": e.target.result,
"class": "thumb-image"
}).appendTo(image_holder);
}
image_holder.show();
reader.readAsDataURL(upload[0].files[i]);
}
} else {
alert("This browser does not support FileReader.");
}
} else {
alert("Pls select only images");
}
}
即使文件已上传,也会抛出无法读取长度等错误。
这可能是什么麻烦?
我已经单独尝试了代码(没有通过代码添加),一切都运行完美。
请帮忙!
答案 0 :(得分:0)
好的,让我看看我是否理解你正在向dom添加内容并希望将事件绑定到新添加的元素。如果是这种情况将事件与身体绑定,那么它就像这样从身体“扫描”
$('body').on( 'change', '#fileUpload', function() {
DoSomething();
});
希望迭代帮助