0

私のHTMLページの1つで、次のようなボタンをクリックしながらファイルフィールドを動的にロードします

$('#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

IEの使用中にonchangeイベントを試してください

于 2012-04-05T11:19:42.373 に答える
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

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 に答える