@flstamn

Почему не удаляется фотография при нажатии на неё?

Написан код для добавления картинки и ее удаления при нажатии на нее,из массива array_for_flask она удаляется,а со страницы нет.

JS
const buttonSelect = document.querySelector('.upload-files');
const fileInput = document.querySelector('.file-input');
buttonSelect.addEventListener('click', ()=>{
  fileInput.click()
  $('.img-container').css('display', 'flex')
});
fileInput.addEventListener('change', (event)=>{
  event.preventDefault();
  array_for_flask.push(...fileInput.files);
  ShowFiles();
});
function del(name) {
  const name_img = name.getAttribute('name');
  const index = array_for_flask.findIndex(element => element.name === name_img);
  $(`#${name_img}`).outerHTML = "";
  array_for_flask.splice(index, 1);
  console.log(array_for_flask)
};
function ShowFiles(){
  const UploadDiv = document.querySelector('.img-container');
  UploadDiv.innerHTML = array_for_flask.map(images =>{
    const fileReader = new FileReader();
    const id = `F-${Math.random().toString(32).substring(7)}`;
    fileReader.readAsDataURL(images);
    fileReader.onload = ()=>{
      const url = fileReader.result;
      const name_img = images.name;
      const img = `   
          <img id = '${name_img}' name = '${name_img} 'id='${id}' src = '${url}' alt = 'image' onclick='del(this)'>
      `;
      UploadDiv.innerHTML +=img;
    };
  }).join('');
};

HTML
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title></title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
        <link rel="stylesheet" href="static/css/style.css">
    </head>
    <body>
        <div class = 'logo' id = 'navbar'>
            <h1>Ayesha</h1>
        </div>
        <section class="instruction">
            <div class="text-block">
                <h1>Admin</h1>
            </div>
            <div class="pic-block">
            </div>
        </section>
        <div class ='card'>
            <div class="text-in-card">
                <h1>New Coth</h1>
            </div>
            <div class="name-cloth">
                <ion-icon id = 'name-error' name="alert-circle-outline" class = 'error'></ion-icon>
                <input id = 'name' type="text" value="" class="some-input" placeholder="name">
                <ion-icon name="shirt-outline" class = 'icons-inp'></ion-icon>
            </div>
            <div class="description-cloth">
                <ion-icon id = 'desc-error' name="alert-circle-outline" class = 'error'></ion-icon>
                <textarea  id = 'desc' placeholder="description" id="" cols="30" rows="1" maxlength="50"></textarea>
                <ion-icon name="document-text-outline" class = 'icons-inp'></ion-icon>
            </div>
            <div class="count-cloth" >
                <ion-icon id = 'count-error' name="alert-circle-outline" class = 'error'></ion-icon>
                <input id = 'count' type="text" value="" class="some-input" placeholder="count">
                <ion-icon name="layers-outline" class = 'icons-inp'></ion-icon>
            </div>
            <div class="price-cloth"  >
                <ion-icon id = 'price-error' name="alert-circle-outline" class = 'error'></ion-icon>
                <input id = 'price' type="text" value="" class="some-input" placeholder="price">
                <ion-icon name="card-outline" class = 'icons-inp'></ion-icon>
            </div>
            <div class = 'img-container'>
                
            </div>
            <div class="upload">
                <button class = 'upload-files'><ion-icon name="images-outline"></ion-icon></button>
                <input class = 'file-input' type="file" name = 'files' multiple accept='image/*' hidden>
                <button class="upload-btn">
                    Upload
                </button>
            </div>
        </div>
        <div class="social-media">
            <ion-icon class = 'git' name="logo-github"></ion-icon>
            <ion-icon class = 'vk' name="logo-vk"></ion-icon>
            <ion-icon class = 'ds' name="logo-discord"></ion-icon>
        </div>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
        <script type="module" src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.esm.js"></script>
        <script nomodule src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js"></script>
        <script src="static/js/script.js"></script>
    </body>
</html>
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@robothot
Ты посмотри в консоль, она же тебе пишет
Uncaught ReferenceError: array_for_flask is not defined

Ты обращаешься к array_for_flask, а у тебя она не объявлена, соответственно все что дальше вообще не выполняется. Не знаю какая картинка у тебя там появляется...
Этот код не работает. Либо, если не полный скинул, то кидай остальное
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы