2011-02-01 1 views
0

私は関数呼び出しであるパラメータを渡す関数を持っています。そして、渡された関数呼び出しを呼び出すためにsetTimeoutを使用します。今私はイベントを発生させるためにsetTimoutで2つのメソッドを試して、私はfunction.call()を使用しました。このパラメータ関数の呼び出しが成功した場合、javascriptは更新されていません。イベントを呼び出すために使用しているjavascriptと、更新されるはずのJavaScriptがあります。Javascript doesnt update

渡される関数は[コンテキスト]です。 function(){ErrorMessageFileSelect( 'diverrortextchoosechannal'、 '選択されたファイルは大きく、1MB未満のファイルを選択する必要があります'); }

function FileSizeOnLoad(contentLength,context) { 

    if (context != null) { 
     //  context.call(); 
     context.call(); 
    } 
    else 
    { 
     $('#inputHiddenFileSizeField').val(contentLength); 
     DisplayChoseFileInformation(contentLength); 
    } 
} 

//これは更新が行われる場所です。この関数は、別のJavascriptファイルに追加されています。

function ErrorMessageFileSelect(className, errorMessage) { 

    $('div.' + className).text(errorMessage); 
    alert($('div.' + className).text()); 
} 



function DisplayChoseFileInformation(fileSize) { 

    var input = $('#ajaxsinglefileupload'); 
    inputValue = $(input).val(); 

    var splitFilename = inputValue.split("\\"); 
    var filename = splitFilename[splitFilename.length - 1]; 

    $("div.divfileuploadinformation").html("File chosen: '" + filename + "'"); 
    var div = $("<div/>"); 
    $("div.divfileuploadinformation").append(div); 

    if (parseInt(fileSize) < 1024) { 
     $(div).html("File Size: " + parseInt(fileSize) + " bytes"); 
    } 
    else { 

     var kb = fileSize/1024; 

     if (kb < 1024) { 
      $(div).html("File Size: " + parseInt(kb).toFixed(0) + " kb"); 
     } 
     else { 
      $(div).html("File Size: " + (parseInt(kb).toFixed(0)/1024).toFixed(0) + " mb"); 
     } 

    } 

    $(div).css("padding-left", "50px"); 
    $(div).css("display", "inline-block"); 
    $('div.divfileprogress').show() 

} 

私は何か不足しています、この問題で私を助けてくれる人がいますか?

おかげで申し訳ありません

+0

ああ...もし私が最初に気付いたら...あなたが人々を助けてくれるようにしたいならば、正しい答えを受け入れなければ、あなたを助けるために時間をとる人々を尊重しないために尊敬されません。 –

+1

、申し訳ありません、私はこれを知っていませんでした。私に電話をしてくれてありがとう。 – redoc01

+0

あなたの投稿を編集すべきだと思うのは、このコードが本当に本当に本当に本当に理解できないからです。 ErrorMessageFileSelectとDisplayChosenFIleFormatがあります...彼らはここにどのように来ていますか?これは何ですか?詳細な情報源 –

答えて

0

それはwindow.setTimeoutは(文脈、0)である??

setTimeoutで呼び出し可能な実際の関数を作成する必要があります。または単に私はあなたの質問を理解していないと申し訳ありません。

+0

ok、返信ありがとうございます。この関数は、vb.netクラスで動的に作成されます。私が最初にしたのは、関数を取得し、[関数名] .call()を使用したが、この関数が呼び出されたときにjquery/javascriptが更新されなかった。それはもう少し明確です、私はコードを編集し、[関数名] .call()を使用します。 – redoc01

+0

settimeoutはfunction_name.call()を使用しません... 呼び出しがありません。機能だけ。たとえば、window.setTimeout(alert、1000)これは間違っています。何も引数を渡さなかったので、settimeoutがどのように動作するかを示すことができます。 –

+0

settimeoutについては、context.call()を使い、渡されるコンテキストはfunction(){ErrorMessageFileSelect( 'diverrortextchoosechannal'、 '選択したファイルは大きく、1MB未満のファイルを選択する必要があります'); } – redoc01