Как я могу повторно инициализировать скрипт Uploadify без добавления дополнительной кнопки?
Вопрос
Я провожу вас через один процесс здесь:
Шаг 1
1.Выберите товар из выпадающего списка
2.Форма заполняется данными
3.Полученный скрытый идентификатор - это идентификатор продукта из выбранного товара
4.Uploadify инициализируется и извлекает идентификатор продукта.В форму добавляется кнопка uploadbutton.
Шаг 2
1.Выберите новый продукт из выпадающего списка
2.Форма будет повторно заполнена данными
3.Полученный скрытый идентификатор - это новый идентификатор продукта из выбранного товара
4.Uploadify инициализируется и извлекает идентификатор продукта.В форму добавлена новая кнопка загрузки.
Теперь я застрял с двумя кнопками.Не совсем то, чего я хочу.
Я мог бы проверить, добавлена ли кнопка, и, таким образом, не инициализировать кнопку повторно, но тогда скрипт Uploadify не получит новый идентификатор продукта (который мне нужен для misc.прочее).
Есть какие-нибудь идеи, как я мог бы решить эту маленькую проблему?
Это моя функция uploadify:
function initUploadify()
{
// If button is already added, do not add it again.
// But this will not retrieve new productID.
if( jQuery('#brand_btnBrowseLogoQueue').length < 1)
{
jQuery('#txtBoxFileName').css({'position':'relative', 'top':'-9px'});
jQuery("#brand_btnBrowseLogo").uploadify({
'uploader' : 'wp-content/plugins/uploadify/uploadify.swf',
'script' : 'wp-content/plugins/uploadify/uploadify.php',
'folder' : 'brand',
'fileExt' : '*.jpg;*.jpeg;*.png',
'auto' : true,
'multi' : false,
'method' : 'POST',
'height' : '30',
'width' : '100',
'buttonImg' : 'path/to/img/btn_browse_101x30px.png',
'scriptData' : {'productID':jQuery("#productID").val()},
onComplete : function(event, queueID, fileObj, response, data) {
//This makes the json response readable
data = eval("(" + response + ")");
//Update logo image
setLogo(jQuery("#brandID").val(),data.fileName);
}
});
}
}
Решение
Если вам просто нужно изменить productID
это должно быть сделано в соответствии с документацией плагина
//initialize uploadify when first product is selected
if( jQuery('#brand_btnBrowseLogoQueue').length < 1) {
...
} else {
//uploadify already initialized just change the productId
$("#brand_btnBrowseLogo").uploadifySettings(
'scriptData',
{'productID': jQuery("#productID").val()}
);
}
Другие советы
Вы пробовали удалить предыдущую кнопку перед созданием новой?
if($('#brand_btnBrowseLogoQueue').length != 0)
$('#brand_btnBrowseLogoQueue').remove();