2011-02-01 97 views
0

我有一個函數傳遞一個參數,這是一個函數調用,然後我使用setTimeout來調用這個傳遞的函數調用。現在我用setTimout嘗試了兩種方法來引發事件,並使用了function.call()。當這個傳遞的參數函數調用被引發時,沒有任何javascript被更新,下面是用於提升事件的javascript以及應該更新的javascript:Javascript does not update

正在傳遞的函數是[context] - function(){ErrorMessageFileSelect('diverrortextchoosechannal','選擇的文件很大,你必須選擇一個小於1MB的文件'); }

function FileSizeOnLoad(contentLength,context) { 

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

//這是更新應該發生的地方 - 這個函數被添加到entirley不同的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

哦......如果我先注意到它...... Trikam如果你想讓人們來幫助你,你需要接受正確的答案否則你不會因爲不尊重那些花時間幫助你的人而受到尊重 – 2011-02-01 23:23:35

+1

哦,對不起,即時通訊新的我不知道。謝謝你讓我沒有。 – redoc01 2011-02-01 23:27:12

回答

0

對不起,但那是window.setTimeout(context,0)?

您應該創建一個可在setTimeout中調用的實函數。或者只是我不明白你的問題和遺憾。