Я пытаюсь отобразить средство выбора файлов, когда пользователь нажимает ссылку на моей странице. Я немного осмотрелся, но все еще не нашел полного решения.
Я исключил привязку слушателя к событию click в моей ссылке и имитации события click в поле файла моей формы, потому что я прочитал, что Safari не поддерживает программный щелчок на входе [type = file].
В настоящее время я использую подход, в котором я устанавливаю непрозрачность поля файла равным 0 и помещаю его в абсолютное положение поверх ссылки, эффективно перехватывая любые щелчки по ссылке. Проблема в том, что я не могу найти способ изменить курсор пользователя, когда он наводит на него ссылку, так как он скрыт вводом файла, который не допускает такого стиля. Я дал всем непосредственным родительским элементам курсор в стиле CSS: указатель, но все же не повезло.
Кто-нибудь имеет представление о другом подходе, который я мог бы использовать, чтобы курсор изменился на указатель при наведении на мою ссылку? Моя лучшая ставка будет идти с чем-то, как у них на http://www.uploadify.com/?
EDIT
Чтобы объяснить немного лучше, у меня есть файл ввода на моей странице:
<div class="logo_file">
<input id="logo_file_field" type="file">
</div>
С этим css:
.logo_file {
position: absolute; /* this element's parent has position: relative */
top: -65px;
left: 0;
width: 175px;
overflow: hidden;
cursor: pointer;
}
input#logo_file_field {
opacity: 0;
-moz-opacity: 0;
filter: alpha(opacity=0);
cursor: pointer;
}
И я пытаюсь показать средство выбора файлов, соответствующее этому полю, когда пользователь нажимает эту ссылку:
<div class="logo_link_wrap">
<a id="logo_change_link">Change Photo</a>
</div>
Который имеет этот CSS:
.logo_link_wrap {
margin-top: 38px;
cursor: pointer;
}
Прямо сейчас я помещаю невидимое поле файла над ссылкой, но курсор не превращается в указатель, как при наведении курсора на ссылку. Выбор файла действительно отображается, на самом деле меня удерживает только курсор, который не меняется. Спасибо