1 и 2 почти тоже самое, не могу вспомнить в чем прикол, но в некоторых контекстах второй вариант не срабатывает как должен, но по сути разница в контексте. Можно указать где распологается элемент на который вашается событие, при наличии одинакового селектора.
разница между 1-2 и 3 в том что если элементы на которые вешается событие подгружаются или создаются через ajax/js, то третий вариант не будет работать.
То есть третий вариант сработает только для элементов которые уже есть на данный момент на странице.
1 и 2 работают в живом режиме и будут автоматически вешаться на элементы которые так или иначе появились на странице в любой момент.
Вообще совсем прям сломаться сайт не должен был, но видимо попали в то что не работает и там, и там.
Для мобильных сайтов обычно используют jQuery Mobile
Все пишу на jquery проблем на андроиде не было ни одной.
Изучайте UploadHandler.php
Там довольно понятный код
Ответ он сам генерирует какой нужно.
Вы можете легко вписаться в его работу, для выполнения нужных действий.
Я например при загрузке файла в UploadHandler сделал запись информации о файлах в сессию пользователя. И при сохранении поста(запись в блоге) брал список файлов из сессии и прикреплял к посту нужные файлы.
Сделать это можно в функции post в UploadHandler
Так же надо не забывать что файл можно моментально удалить,в функции delete нужно очищать сессию от удаленного файла.