2014-11-24 76 views
0

我有问题,当我上传与jQuery动态添加字段:不工作“前面加上” HTML5图片上传预览(DOM)

$('.content div').prepend(
    '<div' 
     + '<input type="file" id="fileselect" name="fileselect[]" multiple>' 
     + '<div id="messages"></div>' 
    + '</div>' 
); 

格#messages显示图像预览和输入上传图片,上传之前,我可以在#消息框中显示图像。

当我补充一点:

<input type="file" id="fileselect" name="fileselect[]" multiple> 
<div id="messages"></div> 
在HTML

,所有的工作,但jQuery的不工作:( 我使用HTML5节目上传脚本之前:http://blogs.sitepointstatic.com/examples/tech/filedrag/2/index.html http://blogs.sitepointstatic.com/examples/tech/filedrag/2/filedrag.js

如何编辑此插件与dom一起工作?

+0

您需要添加'addEventListener'调用到新创建的元素,或者使用委派事件。 – 2014-11-24 10:08:06

+0

你的文件上传概念在哪里?我们需要的代码 – 2014-11-24 10:08:34

+0

我现在不上传图片,我想创建图片预览;) – user3501587 2014-11-24 10:10:35

回答

1

更新:主要问题是,在DOM中准备好文件输入字段之前,已经加载了filedrag.js脚本。 ript异步加载,随后的调用工作。

试试这个:

$("#fileselect").change(function() { 
    var imgStr = "<img src='"+$(this).val()+"'/>"; 
    $("#messages").html(imgStr); 
}); 
+0

在哪里我可以使用这个?这个插件使用普通的js – user3501587 2014-11-24 10:22:26

+0

在你的'prepend()'语句结束后调用这个函数。 – ArinCool 2014-11-24 10:24:37

+0

无法正常工作,在控制台上返回: 未捕获TypeError:无法读取属性'addEventListener'为空 不允许加载本地资源:file:/// C:/fakepath/wallpaper.jpg如果您发现错误,则为: – user3501587 2014-11-24 10:31:26