javascript函数在以后创建的元素上

时间:2015-10-27 01:37:32

标签: javascript jquery html

我有以下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");
     }
 }

即使文件已上传,也会抛出无法读取长度等错误。

这可能是什么麻烦?

我已经单独尝试了代码(没有通过代码添加),一切都运行完美。

请帮忙!

1 个答案:

答案 0 :(得分:0)

好的,让我看看我是否理解你正在向dom添加内容并希望将事件绑定到新添加的元素。如果是这种情况将事件与身体绑定,那么它就像这样从身体“扫描”

$('body').on( 'change', '#fileUpload', function() {
    DoSomething();
});

希望迭代帮助