2011-09-22 73 views
0

我試圖從JavaScript jQuery的轉換代碼,我需要一點點幫助從JavaScript翻譯成jQuery的

所以,我有這樣的代碼:

$('input[type=file]#upload_input_general_uploader').change(function(e){ 
    var browserName=navigator.appName; 
    if (browserName=="Microsoft Internet Explorer"){ 
     var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     var filepath = document.upload.file.value; 
     var thefile = myFSO.getFile(filepath); 
     var size = thefile.size; 
    } 
} 

我試圖把它翻譯成jQuery的,這就是我得到了,但似乎不起作用

$('input[type=file]#upload_input_general_uploader').change(function(e){ 
    $browserName=navigator.appName; 
    if ($browserName=="Microsoft Internet Explorer"){ 
     $myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     $filepath = document.$(this).val(); 
     $thefile = $myFSO.getFile($filepath); 
     $filesize = thefile.size; 
    } 
} 

例如,對於那些誰問爲什麼 - 我需要這個代碼是用jQuery是動態的,我需要$(本),因爲此功能工作得到行爲很少有投入。 那麼,這裏有什麼問題?

+10

你不'翻譯成jquery',jquery不是另一種語言,它是javascript。更改工作代碼以使用庫是沒有好處的。 – TJHeuvel

+1

繼續TJHeuvel的消息,如果有*問題*,您想做什麼,哪部分不工作。使用像jQuery這樣的框架的原因是爲了規範跨瀏覽器的不一致性並使任務更容易編碼。 – zzzzBov

+1

第一段代碼已經使用jQuery,所以我不明白你想要做什麼。 –

回答

1

如何:

$('input[type=file]#upload_input_general_uploader').change(function(e){ 
    if ($.browser.msie){ 
     var myFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     var filepath = $(this).val(); 
     var thefile = myFSO.getFile(filepath); 
     var size = thefile.size; 
    } 
} 

你並不真的需要,如果你不需要翻譯它。這是所有的JavaScript。

+0

這個函數通過很少的輸入來激活,所以我需要使用$(this),我該怎麼做? –

+1

@MorSela你期待'$(this)'是什麼? –

+0

你可以看到$('input [type = file] .upload_input_general_uploader')這是一個文件輸入 –

2

開始這一行:

document.$(this).val(); 

$不是document的屬性,所以這一行被執行的時候,你會得到這樣的錯誤TypeError: undefined_method

+0

我總是以這種方式使用它,你能解釋我要做什麼以及如何解決它的工作? –