2014-09-10 3 views
1

입력 요소를 만든 후에 함수를 추가하고 싶습니다. 그러나 그것은 작동하지 않았다. 이것은 내 코드입니다.요소를 만든 후에 jquery 함수가 작동하지 않습니다.

<p id="pp"> 

    <input type="button" onclick="add();" value="Add Template"/><br> 
    Photo: <input type="file" id="chooseFiles" name="photo[]" class="inputFile"><br> 

    </p> 

    <script type="text/javascript"> 
    function add(){ 

     var text = document.createTextNode("Photo: "); 

     var input = document.createElement("input"); 
     input.type="file"; 
     input.name="photo[]"; 
     input.class="inputFile"; 

    }; 


$(".inputFile").change(function (e) { 

    for (var i = 0; i < e.originalEvent.srcElement.files.length; i++) { 

     var file = e.originalEvent.srcElement.files[i]; 

     var img = document.createElement("img"); 
    img.style.width='300'; 
    img.style.height='auto'; 

     var reader = new FileReader(); 
     reader.onloadend = function() { 
      img.src = reader.result; 
     } 

     reader.readAsDataURL(file); 
     $(this).after(img); 
    } 
}); 

</script> 

기존 입력이 작동합니다. 하지만 createElement와 후 기능 추가()는 작동하지 않습니다 ..

+0

처럼 동적으로 생성 된 요소와 함께 작동하도록 이벤트 핸들러를 delegate에 감사해야합니다. – user3699752

답변

1

을 당신은 내가 편집 한

$(document).on("change",".inputFile",function (e) {}) 
+0

고마워요! 도움이 됐어. – user3699752