jquery AJAX динамическая загрузка предварительного просмотра изображений работает только один раз

#javascript #jquery #ajax #image #image-processing

Вопрос:

Я использую сортируемый jquery для сортировки изображений. Когда изображения отсортированы, я отправляю обратно первое изображение, чтобы загрузить его в img тег (например, предварительный просмотр). Это прекрасно работает. Однако это работает только один раз, в первый раз. Когда я снова сортирую изображения, предварительный просмотр не обновляется.

 $("#sortable").sortable({
  axis: 'x,y',
  containment: "parent",
  tolerance:'pointer',
  update: function(event, ui) {
    var item_order = new Array();
    $('.reorder-gallery li').each(function() {
      item_order.push($(this).attr("id"));
    });
    $.ajax({
      type: "POST",
      dataType: "json",
      url: "processes/sort.php",
      data: 'order=' item_order,
      cache: false,
      success: function(json){
        $("#dp").attr("src", json.dp); // WORKS ONLY ONCE
      }
    });
  }
}).disableSelection();

<div class="dp gradient-bg">
  <img src="<?php echo dp(); ?>" alt="" id="dp">
</div>
 

Я попытался добавить случайную строку в конце, как это:

$("#dp").attr("src", json.dp '?rand=' Math.random()); // NOT WORKING EITHER

Тем не менее, предварительный просмотр загружается только один раз. Мне нужно обновить страницу, чтобы она снова заработала. Каждый раз работает только в первый раз. Что нужно сделать?

Комментарии:

1. Ваш ajax называется выполненным ? Вы проверяли json.dp , имеет ли фактическое значение какое-либо значение ?

2. Да, это так. Мой PHP отправляет обратно значение. Каждый раз появляется новое изображение при выполнении сортировки. Я тоже проверил это в ответе сети. Кроме того, именно по этой причине я упомянул, что он изменяет предварительный просмотр, по крайней мере, в первый (и единственный раз). Однако я не понимаю, почему бы не сделать это во второй раз.

3. Кроме того, я считаю, что одна из проблем, которая может возникнуть здесь, заключается в том, что мне нужно отправить обратно код сортировки вместе с ответом AJAX, чтобы динамически связать его с элементом, чтобы он работал. Однако на данный момент я стараюсь избегать этого подхода, чтобы посмотреть, можно ли сделать что-то лучшее.

4. можете ли вы также показать html-код ?

5. Хорошо, тестирование завершено.. Просто хочу сообщить вам, что динамическая привязка сортируемой функции и повторная отправка ее при каждом вызове AJAX позволяет ей работать. Кроме того, глупая ошибка, которую я совершил здесь, заключалась в том, что я уже называл это динамически по некоторым более ранним причинам, которые я забыл. Все, что мне нужно было сделать, это тоже поместить код $("#dp").attr("src", json.dp); в эту повторно вызванную функцию.