0

以下のコードは、AjaxUpload.2.0.min.js を使用してファイルをサーバーにアップロードします。

ただし、OS ウィンドウ (アップロードするファイルを選択する場所) を表示するには、[ファイルの追加] ボタンを 1 回だけクリックするのではなく、数回クリックする必要があります。

また、リンクを 1 回クリックしてから、マウスを赤い領域の外に移動して (#upload_files の外に) クリックし、最後にリンクをもう一度クリックすると、動作し、OS ウィンドウが開きます..しかし、なぜ私はこれをしなければなりませんか?AjaxUpload が .livequery 呼び出しで最初にバインドされないということですか? では、どうやって縛るの?

マウスの最初のクリックで表示される OS ウィンドウに注目してください。残りのプログラミングは、私のサーバーで正常に動作しています。

コードを簡単にテストできるように、.js は github にアップロードされますが、実際には、それらは私のマシンにあります。

どうもありがとう

<head>
<style>
#upload_files{color: #fff; background:#F32201; border:1px solid #7E9DB9; padding:2px;}
</style>

<script type="text/javascript" src="https://gist.github.com/raw/6dd585079502f138d87e/7c243080233761859937d52195b670602731a379/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/eeb2fe78f63ab80b626d/5be66e749b19fbb5b7c8814bf72a98c083f2aaaf/jquery.livequery.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/826bff2445c8533dd7fc/797734455959ef27796b6770c95a7b39049ae6e9/AjaxUpload.2.0.min.js"></script> 

<script type="text/javascript">
      $(document).ready(function() {

    function uploadFiles(){   
        new AjaxUpload('#upload_files', {
            action: 'whereToUploadInServer.php',
        });     

    }//end uploadFiles

           $("#upload_files").livequery("click", function(e){
        e.preventDefault();
        uploadFiles();
        //debugger ;
    }); 
}); //end document ready

    </script>


  </head>
  <body>
       <div><a href="#" id="upload_files">Add File</a></div> <br>

  </body>
4

1 に答える 1

1

私が知る限り、Github のドキュメントによると、現時点では ajaxupload コンポーネントは完全には機能していません。著者は、代わりに新しい qq.FileUploader プラグインを使用することを提案しています。

以下は、div 要素をクリックした直後にファイル ダイアログを表示する例です。

jsFiddle の例

それが役に立てば幸い。

于 2010-11-28T21:32:50.730 に答える