2017-01-04 3 views
2

У меня есть этот код, чтобы определить, когда пользователь нажимает на ввод файла для загрузки файла.Обнаруживать, когда файл перетаскивается на вход файла

$('input:file').click(function() { 
    // do stuff here 
}); 

я обнаружил, что многие пользователи перетаскивания файлов на вход файла, чтобы загрузить файл, и это не вызывает, когда это произойдет. Я считал mouseover, возможно, в сочетании с mouseup, но я не уверен, как бы я знал, держал ли пользователь файл при этом.

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

Как определить файл, который перетаскивается на вход файла, чтобы я мог реагировать на него?

+0

Вы пытались получить позицию указателя, используя 'mousemove()'? https://api.jquery.com/mousemove/ – elementzero23

+0

Попробуйте эту страницу http://www.w3schools.com/html/html5_draganddrop.asp –

+0

@ GôTô, как реализовать перетаскивание элемента. Пользователи не перетаскивают элемент, они перетаскивают файл с браузером, поэтому это не похоже на то, что мне нужно. Кроме того, w3schools просто ужасны, неполны и часто вводят в заблуждение. – Goose

ответ

2

Вы можете реагировать на браузерное событие собственного перетаскивания как dragenter и dragleave

container.addEventListener("dragenter", this.dragenter, true); 
container.addEventListener("dragleave", this.dragleave, true); 

Так что вам нужно определить только область, которые вы хотите отслеживать, когда сопротивление происходит и ваши действия на этом событии.

+0

Похож на то, что мне нужно, но моя попытка не сработала, см. Мой обновленный вопрос, чтобы посмотреть, как я пытался его применить. – Goose

+0

Кажется, он работает на этой скрипке. Повторите проверку https://jsfiddle.net/3fnatryv/ AddEventListener - это родное событие браузера, поэтому вам нужно получить элемент DOM из поиска jQuery. Я использую первый элемент [0] – VadimB

+0

А, я вижу. Благодаря! – Goose

Смежные вопросы