Нажмите на элемент работы нестабильно

0
$scope.clickUpload = function(){
        $timeout(function() {
            angular.element('#upload').trigger('click');
        }, 100);
    };

Например, 3 раза это работает отлично, но на 4-м клике - ничего не происходит. Как я могу это исправить?

  • 3
    Мне любопытно, почему вы используете .trigger('click') ?
  • 1
    Похоже, ты не думаешь об Angular пути .
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Я редактирую свой оригинальный ответ, так как я не совсем понял, что именно вы пытаетесь сделать. Вы можете создать тип ввода = "файл", не используя jQuery/javascript, чтобы скрыть исходный элемент и имитировать щелчок на нем. Вы можете использовать стандартный HTML/CSS для этого...

CSS:

.upload  {
    height:25px;
    width:70px;
    background:#ccc;
    color:#fff;
    overflow:hidden;
    text:'Upload';
}
.upload input {
    display: block !important;
    width: 70px !important;
    height: 25px !important;
    opacity: 0 !important;
    overflow: hidden !important;
}
#uploadText {
    left: 6px;
    position: relative;
    top: -45px;
}

HTML:

<div class="upload">
  <input type="file" name="upload" />
  <h3 id="uploadText">Upload</h3>
</div>

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

  • 0
    Я использую стандартный элемент загрузки файлов w3schools.com/jsref/dom_obj_fileupload.asp Нажав на кнопку, я хочу открыть окно выбора файлов
  • 0
    Я обновил свой ответ, чтобы отразить, что вы пытаетесь сделать, основываясь на вашем последнем комментарии.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню