jQuery仅附加到现有对象

时间:2015-09-29 12:08:03

标签: javascript jquery html jquery-events

我正在尝试创建一个按钮,onclick会向页面添加一些新的cl_no元素,但html不会附加到新对象。

jQuery

现在这里是该代码的<script> jQuery(document).ready(function(){ jQuery("input[type='button']").click(function(){ var ask=confirm('Are you sure'); if(ask){ var n=jQuery(this).parent(); var s=jQuery(this).prop('id'); n.html('Select Picture: <br><input type="file" name="'+s+'" id="'+s+'" required>'); } } }); jQuery(":file").change(function() { var na=jQuery(this).val(); alert(na); }); }); </script> 示例:

form

因此,当我点击<form> <div><img src="image/source"><br> <input type="checkbox" required value="1" name="product1">image is ok<br> <input type="button" value="change image" id="product1" name="product1b"></div> <input type="file" name="product2"> </form> button对此进行了更改:

form

问题是jQuery函数<form> <div> Select Picture: <br> <input type="file" name="product1" id="product1" required> </div> <input type="file" name="product2"> </form> 适用于jQuery(":file").change(function() {但不适用于product2,因为页面加载时它不存在,product1没有附加到它。

1 个答案:

答案 0 :(得分:3)

当元素是动态的时,您必须使用委托事件:

jQuery(document).on('change', ':file', function(){
    // do stuff
});