Как решить проблему дублирования в prependTo?

При загрузке изображения осуществляется ajax запрос и на выход отдается код с ссылкой на превью изображения, который добавляется в контейнер через prependTo.

'onComplete'=>'js:function(id, fileName, responseJSON){
                            if (responseJSON.success)
                            {
                                $.ajax({
                                    url: "/posts/renderPhoto",
                                    cache: false,
                                    type: "POST",
                                    data: {fileName: responseJSON.filename},
                                    success: function(data)
                                    {
                                    	var result = jQuery.parseJSON(data);

                                        $(result.html).prependTo(".qq-upload-success");

                                    }


Проблема дублирования возникает оттого, что при мультизагрузке изображений prependTo добавляет превьюшку найденного изображения в каждый селектор .qq-upload-success. Можно ли это как-нибудь обойти?
  • Вопрос задан
  • 2477 просмотров
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
jsfiddle.net/iiil/B6cCF/8
Вот в примере в разметке 5 блоков. В трех из них есть картинка, в остальных нет.
Соответственно в тех, в которых картинки нет добавляется синяя картинка. То есть в примере показано как сделать проверку. Соответственно, Вы можете использовать это решение, оно будет работать. Но скорее всего Вам нужно каким-то образом это все делать по-другому, то есть обращаться к последнему элементу, как Вам показали в другом ответе.
Трудно сказать, почему он у Вас не сработал, так как нет возможности протестировать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
либо проверяйте наличие в элементе потомка с селектором img, или обращайтесь к последнему элементу набора.
Ответ написан
$(".qq-upload-success").eq($(".qq-upload-success").size()-1).prepend(result.html);
Ответ написан
Ваш ответ на вопрос

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

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