1

私はJqueryが初めてです。何かがアップロードされると、アップロードボタンのクラスが次のように変更されるアップロードフォームがあります。

<a class="upload-button upload buy" id="upload-button"><span>Upload a document</span></a>

に:

<a class="upload-button buy white" id="upload-button"><span>Upload a document</span></a>

ファイルが既にアップロードされている場合(ボタンのクラスが変更されている場合)、「done」というdivを追加する関数を作成しようとしました。

これが私がこれまでに得たものです:

$('a#upload-button').ready(function() {
            if ($(this).hasClass('white')) {
                $('#three')
                    .append('<div class="done rotateone wiggler"></div>')
                    .addClass('grey');
        }
        })

なぜ機能しないのかわかりません。誰か助けてください。

4

1 に答える 1

1

そうする必要があります(ページが読み込まれたときにボタンにクラスがあるかどうかを確認したい場合は、そうでない場合は、そのif部分を取り、必要な場所に配置します

//this is a shorthand methot for $(document).ready() 
//you should use this to wait for the dom to load
$(function(){
 //if the link has the class
  if($('a#upload-button').hasClass('white')){
     //append the button
     $('#three')
        .append('<div class="done rotateone wiggler"></div>')
        .addClass('grey');
  }
});

編集 - スクリプトを変更する必要があります

function verifyFileUploadState(up) {
    if ($(".file-title").length == 0) {
        $("#upload-button span").html("Upload a document");
        $("#upload-button").addClass("upload");
        $("#upload-button").removeClass("white");
    } else {
        $("#upload-button span").html("Upload another document");
        $("#upload-button").removeClass("upload");
        $("#upload-button").addClass("white");
         $('#three')
            .append('<div class="done rotateone wiggler"></div>')
            .addClass('grey');
    }
    up.refresh();
}
于 2012-04-04T10:28:46.160 に答える