Цитата:
А значит успешная загрузка сервером фото, это возврат клиенту информации о том, как это фото идентифицируется на сервере, чтобы по этим параметрам можно было сделать запрос на корректное удаление фото и прочего с ним связанного. |
Цитата:
В качестве id или class могу использовать, в частности, название файла, который надо удалить, которое получаю в первом запросе ajax. В качестве папки, из которой удалить, я указываю product_id. Разве не так? Указываю серверному сценарию, в какую папку сохранить $.ajax({ url : '/catalog/controller/extension/module/comment_img-upload.php?product_id=' + product_id, Указываю, какую картинку удалить, предварительно вырезав имя файла из пути img_name += '<br><img style="max-width: 500px; height: auto" src="/catalog/controller/extension/module/comment_img-uploads/product_id_' + product_id + '/' + fileName(val) + '"> <img id="' + fileName(val) + '" src="/image/review/delete.png" width="20" height="20" alt="Удалить" />'; А вопрос был лишь в том, как отловить клик после динамической загрузки картинки. |
Цитата:
Цитата:
Но как бы вы не формировали запрос на удаление, картинку на клиенте можно удалять только тогда, когда сервер ответил - удалено. |
laimas
А если забыть ВСЕ, о чем говорилось до сих пор. И взять только это: На страницу динамически ajax-ом в цикле выводятся картинки". У каждой есть свой конкретный id. Как при клике по картинке вывести алерт "Hello! World." Отдельной функцией, а не вставкой динамического onclick в каждую картинку. Поэтому я спросил, как повесить на картинку событие уже после ее динамической загрузки. Вот вопрос. :) P.S. Когда картинка изначально присутствует на странице - нет проблем. Когда динамически - проблема Все тут. |
Цитата:
Уж если говорить в контексте вашего добавления, то сначала это добавление, а удачный результат его, это уже редактирование. И если в первом случае (допустим каждое фото добавляется своим полем), это кнопка Добавить со своим обработчиком, а во втором случае, это уже кнопка Удалить, со своим обработчиком. Если такая реализация, то выгодно делегировать обработку кнопок Добавить/Удалить общему родителю, который гарантировано есть на странице. Либо - сервер ответил, что добавил. Клиент сформировал url к картинке, добавил ее на страницу и кнопку Удалить, которой устанавливается и обработчик. И никаких проблем нет ни для первого случая, ни для второго. |
"делегировать обработку кнопок Добавить/Удалить общему родителю"...
--- В таком случае нужно просто нумеровать id картинки (0-1-2-3 и т.д.) и при прокрутке массива тоже использовать for с нумерацией. Иначе, если делегировать родительскому элементу, то какие либо присваиваемые id тоже будут динамическими, и все останется по прежнему плохо. Так:? |
~~~ Сказал, не проверив. Пардон.
|
Последний, наверное, вопрос.
Если явно задать id картинки и использовать метод on, то нормально. $('body').on('click', '#abc', function(){ alert('adfasdf'); }); А если id картинки формируется динамически, то как в эту функцию вставить вместо '#abc' переменную? |
Цитата:
Каким образом банальная нумерация чего либо может иметь отношение к идентификации объекта? Что в вашем случае является уникальным идентификатором загруженного на сервер фото? Нужно ли для каждой кнопки Удалить писать свой отдельный обработчик и отдельный запрос к индивидуальному серверному сценарию, или достаточно иметь один обработчик, один запрос отличающийся параметром, к одному сценарию? Второе же ведь, о чем вы выше и пишите, и описываете код, тогда откуда могут рождаться мысли о вредном в данном случае - атрибуте id? Пусть у вас идентификатор, это имя, тогда кнопки удаления и должны его содержать в атрибуте, например так data-del="name", а не вырезать его выискивая среди src. Тогда делегирование обработчика этим кнопкам, это $(parent_selector).on('click', '[data-del]', function() { var btn = $(this), del = btn.data('del'), //то почему сервер узнает, что удалять etc .... }) И делегировать нужно не тому, что удобно пишется, а ближайшему родителю, который всегда есть на странице. |
Часовой пояс GMT +3, время: 04:05. |