У меня есть функция, которая просмотрит изображение, которое собирается быть загружено:два JS скриптов блокирующих друг друг
<script>
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
var if_alternative = true;
$('#preview_image').attr('src', e.target.result);
//hide product_images and fileSelector
}
reader.readAsDataURL(input.files[0]);
}
}
$("#product_images").change(function(){
readURL(this);
});
</script>
Поскольку пользователи имеют возможность загружать более чем одно изображение, я хотел бы второе изображение, которое будет также просмотрен. Это функция, которая должна анонсировать второе изображение:
<script>
function readURL(input) {
if (input.files && input.files[0]) {
var reader2 = new FileReader();
reader2.onload = function (e) {
var if_alternative2 = true;
$('#preview_image2').attr('src', e.target.result);
}
reader2.readAsDataURL(input.files[0]);
}
}
$("#product_images2").change(function(){
readURL(this);
});
</script>
Теперь проблема заключается в том, что, когда оба скрипта активен, они оба предварительный просмотр изображения в контейнере второго изображения (#preview_image2
), вместо просмотра первый в первом контейнере, второй - второй. Может ли кто-нибудь сказать мне, почему? Благодаря!
У обоих этих сценариев одинаковое имя в одном и том же пространстве? – Compass
На одной странице отображаются две одинаково названные функции. К тому времени, когда выполняются обработчики 'change()', второе определение заменит первое. Это единственный 'readURL()' на странице, поэтому он запускается в обоих случаях. –
Правильно, почему обе функции имеют одно и то же имя? Если вам нужно использовать другой читатель, просто добавьте для него параметр функции. – MaxZoom