0

在我的一个 HTML 页面中,在单击如下按钮时动态加载一些文件字段

$('#add').click(function(){


$('#files').append('<input type="file" class="myfile" name="myfile" />');


});

我的问题是如何将新添加的元素“绑定”到 HTML 页面,以便我可以访问

$('.myfile').change(function(){
// Code Here
});

我问这个是因为

$('.myfile').live('change',function(){
// Code here
});

不适用于所有浏览器,尤其是 IE

请帮忙谢谢

4

4 回答 4

1

使用 jQuery .on().live()已弃用。

jQuery(document).on('change', '.myfile', function(){
       alert("it works!");
   }
);
于 2012-04-05T11:24:02.230 回答
1
$('#add').click(function(){
  var item = $('<input type="file" class="myfile" name="myfile" />').change(function(){
    alert('TEST');
  });
  $('#files').append(item);
});
于 2012-04-05T11:25:36.207 回答
1

您应该.on()在使用 jQuery 1.7+ 或.delegate()更低版本时使用。

http://jsperf.com/jquery-live-vs-delegate-vs-on

PS我们在谈论什么版本的IE,因为.live()应该可以工作(虽然很慢)。

更新

演示.delegate():http: //jsfiddle.net/PeeHaa/zqbBX/
演示:http .on(): //jsfiddle.net/PeeHaa/ddJrs/

于 2012-04-05T11:16:37.863 回答
1

在使用 IE 时尝试 onchange 事件

于 2012-04-05T11:19:42.373 回答