Подключите виджет jQuery UI и обновите очередь - PullRequest
1 голос
/ 12 января 2012

Хорошо, я создал некоторый тестовый код, чтобы попытаться очистить очередь загрузки, но я просто не знаю, как получить доступ к функции refresh (), откуда я нахожусь. Я использую виджет JQuery UI в качестве базы для работы. Часть, где я использую INIT, дает мне ад, я просто не могу понять, как обновить () из моего вызова json. Я надеюсь, что вы можете просветить меня, потому что, очевидно, я отстой в JQuery.

    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
            }
            });
        }
    }
});

Ответы [ 2 ]

3 голосов
/ 13 января 2012

Что именно вы пытаетесь обновить в интерфейсе?Насколько я знаю refresh () только перерисовывает прозрачную прокладку plupload для времени выполнения в правильном положении.Он не перезагружает весь пользовательский интерфейс или не обновляет / не очищает очередь загрузки.

Если бы вы могли немного подробнее рассказать о том, что / почему вы пытаетесь обновить, я могу помочь вам в дальнейшем.В любом случае обновление на основе вашего кода вызывается следующим образом:

up.refresh();

Если вы пытаетесь полностью очистить очередь загрузки, это делается следующим образом:

up.splice();

или из любого местаиначе в вашем коде, используя:

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

Вы также можете проверить другие доступные события , так как я подозреваю, что вы должны выполнять проверку на FilesAdded, а не на QueueChanged, но зависит отВы пытаетесь достичь.

1 голос
/ 24 января 2012
$.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);
    });
}
});

Был ответ - up.refresh () и т. Д. Почему-то не работали.

...