2011-02-09 1 views
3

Я использую plupload сРазгрузка plupload из DIV

$("#plupload_div").pluploadQueue({ 
     // General settings 
     runtimes : 'flash,html5', 
     url : '/products/save_photo', 
     max_file_size : '10mb', 
     //chunk_size : '1mb', 
     unique_names : true, 
     resize : {width : 558, height : 418, quality : 90},  
     multipart: true,   
     multipart_params : {"photo[variant_id]" : variant_id, authenticity_token : atoken},   
     filters : [ {title : "Image files", extensions : "jpg,gif,png"}],   
     flash_swf_url : '/javascripts/plupload.flash.swf',   
     }); 

Что я должен сделать, чтобы разгрузить plupload от элемента #plupload_div?

ответ

2
$('#plupload_div').unbind(); 

это помогает?

вызова отвязать() без аргументов удаляет все обработчики прикрепленные к элементам

+0

Все нормально! Но этого недостаточно, если использовать Flash Runtime. Вам нужно удалить DIV, чтобы убедиться, что объект удален из DOM. Если мы снова попытаемся вызвать plupload, IE будет вызывать ошибку в строке 49 во Flash в функции __add__callback, потому что объект остается на странице. Ответ @jayarjo - лучший подход, потому что удаляет объект plupload со страницы, поэтому мы можем добавить его снова последним. – jaysponsored

11

Вы можете сделать это следующим образом:

var uploader = $("#plupload_div").pluploadQueue(); 
uploader.destroy(); 
$("#plupload_div").remove(); 

Это отвязать все события и удалить структуру Plupload со страницы.

В качестве альтернативы вы можете проверить Plupload UI Widget - еще одна реализация API-интерфейса Plupload Core, которая является скином (использует jQuery UI Themes), более гибкая в целом (похожа на метод виджета и модель событий) и имеет общедоступный метод уничтожения, что можно назвать следующим образом:

$("#plupload_div").plupload('destroy'); 
+0

$ ("# plupload_div"). Plupload ('destroy'); не работает для меня с виджетами Plupload UI. Мне все еще нужно использовать uploader.destroy(); – Garry

+0

Как я это сделал: 'uploaded: function (event, args) { $ (" # uploader "). Plupload ('destroy'); $ ('# uploader'). Remove(); } ' – Techbrunch

1

uploader.destroy(); достаточно для его обработки

+0

У меня возникали проблемы с привязкой элемента к нему несколько раз, и это сработало для меня. – Steve