ファイル アップロード ボックスを備えたフォームがあり、jQuery Filestyle プラグイン (http://www.appelsiini.net/projects/filestyle) を使用して入力のスタイルを設定しています。また、ユーザーがフォームを送信しなくても複数のファイルをアップロードできるようにする単純な JavaScript 関数も用意しました。最初のファイル アップロード入力は完璧に見えますが、ユーザーが [追加ファイルのアップロード] ボタンをクリックして新しい入力を作成すると、スタイルがまったく設定されません。これは、ページの読み込み時にプラグインが既に実行されており、DOM を変更すると、新しいものにスタイルが適用されなくなるためだと思います。
それが問題であると仮定すると、私の質問は、新しく作成されたファイル入力で Filestyle jQuery を呼び出す方法があるかどうかです。
これが私の Filestyle jQuery コードです。
<script src="/scripts/jquery.filestyle.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("input.file").filestyle({
image: "/images/btn_select_file.gif",
imageheight : 24,
imagewidth : 115,
width : 275,
});
});
</script>
そして私の JavaScript DOM 操作:
<script type="text/javascript">
var fileCounter = 1;
function addFile() {
fileCounter++;
var newdiv = document.createElement('div');
newdiv.id = 'file' + fileCounter;
newdiv.innerHTML = '<div class="form-item"><label for="file_' + inputCounter + '">Upload Additional File ' + (inputCounter) + '</label>\r<input type="file" name="file_' + inputCounter + '" id="file_' + inputCounter + '" class="file"><span class="space"><a href="javascript:removeFile(' + inputCounter + ');">Remove</a></span>';
document.getElementById("files").appendChild(newdiv);
document.getElementById("filecount").value = inputCounter;
}
</script>
アドバイスをありがとう!