Использование приманки нарушает мою загрузку в IE. Зачем? - PullRequest
1 голос
/ 18 октября 2011

Я использую Valums AJAX Uploader , и он прекрасно работает даже в IE.

Проблема возникает, когда я пытаюсь использовать приманку, чтобы скрыть разметку Valums.

$('.control.addphoto:not(.controlactive)').live('click', function(){
    $('#upload input[type=file]').click();
});

Итак, реальный ввод скрыт, но нажатие на мой элемент управления активирует его. Диалоговое окно «Выбор файла» прекрасно отображается в IE, но как только я нажимаю «ОК», загрузка файла завершается неудачно (он даже не попадает на сервер). Когда я не использую приманку (то есть когда я нажимаю непосредственно на входе), она работает просто отлично.

Все прекрасно работает в Chrome и Firefox.

Почему это происходит? Я не мог понять, так как это просто приманка, и она вызывает фактический ввод. Любая подсказка? Есть ли способ сделать приманку более "прозрачной"?

obs: только что обнаружил, что приманка не работает в Opera (не открывает диалоговое окно). Опять же, щелчок непосредственно на входе работает нормально. Разве это не должно работать, так как я использую jquery (который должен быть кроссбраузером)?


EDIT

  • В действительности, Opera по своей природе не позволяет запускать поведение ввода приманкой.

  • Используя альтернативу Кевина Б., я смог решить мою проблему. С другой стороны, я до сих пор не знаю, почему это произошло с IE, и буду держать этот вопрос открытым ради знания.

1 Ответ

2 голосов
/ 18 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...