2012-01-11 8 views
1

私はアップロードキューをクリアするためのテストコードをいくつか作成していますが、私はどこからrefresh()関数にアクセスするのか分かりません。私はjQuery UIウィジェットを基にして作業しています。 私がINITを使用している部分は、地獄を与えている、私はちょうど私のjsonの呼び出し内からリフレッシュする方法を見つけるように見えることができない()。私は明らかに私はjQueryを吸うように私を啓発できることを願っています。jQuery UIウィジェットを追加してキューを更新する

var do_continue = false; 

    $("#uploader").plupload({ 
    // General settings 
    runtimes : 'html5,browserplus,silverlight,gears,html4', 
    url : CI.base_url + 'private/ad/upload_ad_images', 
    max_file_size : '2mb', 
    max_file_count: 5, // user can add no more then 20 files at a time 
    //chunk_size : '1mb', 
    unique_names : true, 
    multiple_queues : true, 

    // Resize images on clientside if we can 
    //resize : {width : 800, height : 600, quality : 90}, 

    // Rename files by clicking on their titles 
    rename: true, 

    // Sort files 
    sortable: true, 

    // Specify what files to browse for 
    filters : [ 
     {title : "Image files", extensions : "jpg,gif,png"} 
    ], 

    // Flash settings 
    flash_swf_url : CI.base_url + 'scripts/plupload/js/plupload.flash.swf', 

    // Silverlight settings 
    silverlight_xap_url : CI.base_url + 'scripts/plupload/js/plupload.silverlight.xap', 
    // Post init events, bound after the internal events 
    init : { 
     QueueChanged: function(up) { 
      // check for max photos here 
      $.getJSON(CI.base_url + 'private/ad_ajax/count_uploaded_images/', function(data) { 
      if (!data.message) { 
       alert("no data found? - please contact us with this message."); 
       do_continue = false; 
      }else if(data.message != "go") { 
       alert("Maximum photo uploads reached."); 
       do_continue = false; 
      } 
      if (!do_continue) { 
       $(this).refresh(); // -->> need something that works here 
      } 
      }); 
     } 
    } 
}); 

答えて

1
$.getJSON(CI.base_url + 'private/ad_ajax/count_uploaded_images/', function(data) { 
if(data.message != "go") { 
    alert("Maximum photo uploads reached."); 
    do_continue = false; 
    plupload.each(files, function(file) { 
     up.removeFile(file); 
    }); 
} 
}); 

何らかの理由でアップアップリフレッシュ()などが動作しませんでした。

+0

'uploader.splice();'は、キューをクリアするのに十分です。おそらく、jquery.ui、またはFlashプラグインを使用して、後でリフレッシュする必要があります – ppumkin

3

正確にUI内で更新しようとしていますか?私が知っている限り、refresh()は、正しい位置にランタイムのplupload transparent shimを再描画するだけです。 UI全体をリロードしたり、アップロードキューをリフレッシュ/クリアしたりすることはありません。

あなたが何をリフレッシュしようとしているのかについてもっと詳しく説明できれば、私はさらにお手伝いできるかもしれません。

あなたのコード内の
up.splice(); 

またはどこか他から:あなたは次のように行われ、完全にアップロードキューを空にしようとしている場合

up.refresh(); 

:いずれかの方法では、次のように呼ばれて、あなたのコードに基づいてリフレッシュ使用:

var uploader = $('#uploader').plupload('getUploader'); 
uploader.splice(); 

あなたはまた、私はあなたがFilesAddedではなくQueueChangedしかしdepenであなたのチェックを行うべきである疑いがあるとしてevents利用できる他にチェックインすることもできますあなたが達成しようとしているもの。

+0

$(this).refresh()は、QueueChanged:function(up){$(this).refresh()}に直接置くと、アップロードキューをリフレッシュするようです。 $ .getJSONを使って引っ張っている写真の量が最大に達したときにのみリフレッシュしたい。しかし、(this)はgetJSON関数内ではアクセスできません。私はちょうどgetJSON関数内からリフレッシュ/スプライスにアクセスする方法を知る必要があります。 – qwertzman

関連する問題