gpt4 book ai didi

javascript - Ajax/Js 图片 uploader : Creating duplicate preview images

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:40 25 4
gpt4 key购买 nike

我正在使用此 SITE 中的 Ajax 图像 uploader .我目前在创建重复预览图像方面取得了成就:一个出现在输入字段下,另一个出现在页面中的其他地方,比如“这是你选择的”。问题是,如果用户选择一个文件,该函数将显示图像,但如果用户改变主意并选择新图像,则 yourCustomPreview 将显示所选的新图像和旧图像。

有没有办法只显示最新的预览图片而不显示旧的预览图片?如果不清楚请查看源文件HERE

uploaderPreviewer.js-原函数

<script>
function displayImage($previewDiv, imageUrl) {

var imageFilename = imageUrl.substr(imageUrl.lastIndexOf('/') + 1);

$previewDiv
.removeClass('loading')
.addClass('imageLoaded')
.find('img')
.attr('src', imageUrl)
.show();
$previewDiv
.parents('table:first')
.find('input:hidden.currentUploadedFilename')
.val(imageFilename)
.addClass('imageLoaded');
$previewDiv
.parents('table:first')
.find('button.removeImage')
.show();
}
</script>

uploaderPreviewer.js-修改函数

<script>
function displayImage($previewDiv, imageUrl) {
//New
var yourCustomPreview = $('#custompreview');

var imageFilename = imageUrl.substr(imageUrl.lastIndexOf('/') + 1);

$previewDiv
.removeClass('loading')
.addClass('imageLoaded')
.find('img')
.attr('src', imageUrl)
.show();
$previewDiv
.parents('table:first')
.find('input:hidden.currentUploadedFilename')
.val(imageFilename)
.addClass('imageLoaded');
$previewDiv
.parents('table:first')
.find('button.removeImage')
.show();

//New
yourCustomPreview.append('<img src="' + imageUrl + '"/>');

}
</script>

最佳答案

好的,试试这个:

要编辑:

用这个替换 displayImage 函数:

function displayImage($previewDiv, imageUrl) {
//New
var yourCustomPreview = $('#custompreview');
var imageId = $($previewDiv.context).attr('id');
var imageFilename = imageUrl.substr(imageUrl.lastIndexOf('/') + 1);

$previewDiv
.removeClass('loading')
.addClass('imageLoaded')
.find('img')
.attr('src', imageUrl)
.show();
$previewDiv
.parents('table:first')
.find('input:hidden.currentUploadedFilename')
.val(imageFilename)
.addClass('imageLoaded');
$previewDiv
.parents('table:first')
.find('button.removeImage')
.show();

//New
if(!yourCustomPreview.find('#' + imageId +'_prev').length > 0)
{
yourCustomPreview.append('<img id="' + imageId + '_prev" src="' + imageUrl + '"/>');
}
else
{
$('#' + imageId +'_prev').attr('src', imageUrl);
}
}

删除

用这个替换 removeImage 函数:

function removeImage($removeImageButton, errorDisplayed) {

var thumbIdToDelete = $removeImageButton.parents('table').find('[name=imageToUpload]').attr('id');
var $parent = $removeImageButton.parents('table:first').parent();

$.post($.uploaderPreviewer.removeImageAjaxUrl, {
currentUploadedFilename: $parent.find('input:hidden.currentUploadedFilename').val()
});

$parent.find('input:hidden.currentUploadedFilename').removeClass('imageLoaded');
$parent.find('div.previewImage')
.removeClass('loading imageLoaded')
.find('img')
.hide();

$parent.removeErrorMessage();

if ( ! errorDisplayed) {
$parent.find('input:file').val('');
$removeImageButton.hide();
}

$('#' + thumbIdToDelete +'_prev').remove();
};

关于javascript - Ajax/Js 图片 uploader : Creating duplicate preview images,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com