Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не срабатывает click (https://javascript.ru/forum/dom-window/73296-ne-srabatyvaet-click.html)

laimas 04.04.2018 18:51

Ошибки значит есть, в самом обработчике их нет. Консоль подскажет.

Эдди 04.04.2018 19:03

Цитата:

Сообщение от j0hnik (Сообщение 482308)
Эдди,
предполагаю, что на момент выполнения данного кода

$('#delfile').click(function() {
     alert('Тра-ля-ля');
});


кнопки на странице еще нет, и обработчик не вешается.

Да, наверное. Load надо было делать.

j0hnik 04.04.2018 19:06

Эдди,
Обработчик вешать колбек функцией.
Или
Вешать обработчик на родителя, выполнять проверку на нужный элемент.

laimas 04.04.2018 19:07

Цитата:

Сообщение от Эдди
Load надо было делать.

А он причем? Даже пустое изображение будет иметь событие.

Вы не поясняете как делаете, и когда с ... А коли все это у вас динамически добавляется на страницу, то не Load, а либо делегирование обработки события, либо установка обработчика после добавления элемента на страницу.

laimas 04.04.2018 19:08

Цитата:

Сообщение от j0hnik
выполнять проверку на нужный элемент.

В JQ в этом нет необходимости, в методе все уже имеется.

Эдди 04.04.2018 19:10

Цитата:

Сообщение от laimas (Сообщение 482312)
А он причем? Даже пустое изображение будет иметь событие.

Вы не поясняете как делаете, и когда с ... А коли все это у вас динамически добавляется на страницу, то не Load, а либо делегирование обработки события, либо установка обработчика после добавления элемента на страницу.

Да. Динамически добавляются сама картинка и картинка "Удалить".

"делегирование обработки события"??? Говорил, JS использую только по мере необходимости.:-/

laimas 04.04.2018 19:22

Эдди,
если по полной, то в вашем коде напрочь отсутствует логика.

Допустим - имеется исходный код: поле выбора файла, бокс куда будет помещаться предпросмотр и кнопка "Отменить", именно Отменить, а не Удалить, ибо нет у вас никакого удаления.

Загрузка файлов при этом асинхронная. Допустим - выбираем файл и грузим на сервер. Если нет ошибок, то по ответу сервера поле очищается и очищается бокс предпросмотра. Все, можно выбирать другой файл этим же набором элементов. Если хотим отказаться от загрузки щелкаем Отметить. Никакого делегирования не требуется.

А если клонируем этот набор, это уже динамическое добавление элементов. В остальном поведение может быть таким же.

Встает вопрос - а зачем так много наборов, если можно все делать одним? Если предполагается, что сперва набираем, а уже множество файлов загружаем (а не видно по вопросам чтобы это было так), тогда да. Но почему при удачной загрузке файлов нужно щелкать кнопки удаляя вручную отработанные наборы?

Эдди 05.04.2018 07:56

Цитата:

Сообщение от laimas (Сообщение 482315)
ЭддиНо почему при удачной загрузке файлов нужно щелкать кнопки удаляя вручную отработанные наборы?

Логика у меня такая (поправьте, если можно лучше).
Клиент хочет загрузить несколько изображений на сайт.
Он их именно сразу загружает, а не просто выводит для просмотра.
Сразу же после загрузки клиент видит на странице уменьшенные уже загруженные на сервер картинки. И если вдруг передумал какую-то из них оставлять, то удаляет ее и конкретно ее.

Или надо их сначала показать, отобрать, а потом загрузить?
Особой разницы не вижу.

laimas 05.04.2018 12:24

Предпросмотр загружаемого в рамках HTML5 можно организовать и до загрузки изображения на сервер.

Но пусть ваши картинки, это не предпросмотр, а что уже загрузилось, что в общем то можно и не делать, если это можно и на клиенте сделать.

Загрузка изображения на сервер, как впрочем и любого файла не обязательно успех и сразу, возможны ошибки загрузки. Значит это еще требует обработки. Пусть в этом вопросе у вас все как положено, но если "удалить после загрузки", то вообще не понятно как же вы удаляете их:

1) Должен быть запрос на сервер на удаление фото по параметрам которые должен возвращать сервер.
2) Клиент не имеет права удалять картинку на клиенте пока сервер не даст положительного ответа - изображение удалено.

Эдди 05.04.2018 12:31

Собираюсь удалять с сервера файлы ajax-запросом.

А это как делается?
"установка обработчика после добавления элемента на страницу"


Часовой пояс GMT +3, время: 18:50.