#javascript #jquery #ajax #file-upload
#javascript #jquery #ajax #загрузка файла
Вопрос:
У меня возникли проблемы с получением jQuery ‘click ()’ для работы с кнопкой Valums Ajax Uploader.
Мне нужно имитировать нажатие кнопки из кода, но, похоже, этот плагин не использует щелчок для запуска проводника файлов. Селектор правильный, и ошибки JavaScript нет, но я просто не могу заставить его работать.
Пробовал с trigger
и live
также, с идентичным результатом.
Это вызов:
$("div[class='qq-upload-button']").click();
Я вызываю неправильное событие?
Ответ №1:
У Divs нет событий щелчка. Вместо div вы должны вызвать событие нажатия кнопки с таким кодом.
document.getElementById('btnUpload').click();
Однако кнопка, сгенерированная Valums Ajax Uploader, не имеет идентификатора или класса. Вы должны добавить атрибут id, отредактировав скрипт valums (fileuploader.js ). Просто найдите строку input.setAttribute("type", "file");
в файле javascript и вставьте input.setAttribute("id", "btnUpload");
под ней.
Комментарии:
1. Нет необходимости добавлять идентификатор, вы можете просто связать его с входом внутри основного div, у которого уже есть ваш идентификатор. Я буду использовать jQuery для демонстрации… $(‘#uploadElementID ввод’). триггер (‘click’); где #uploadElementID — это свойство элемента, с помощью которого вы настраиваете FileUploader.
2. @sevenkul: Хорошее решение. Это отлично сработало для моего варианта использования.
Ответ №2:
Я думаю, вам нужно найти функцию, вызываемую при нажатии, и вызвать ее вручную.
Комментарии:
1. Я прочитал исходный код плагина, и там нет привязки к клику (я думаю). Какие еще существуют возможности для прослушивания событий щелчка без использования click?