2015-09-29 2 views
0
$scope.clickUpload = function(){ 
     $timeout(function() { 
      angular.element('#upload').trigger('click'); 
     }, 100); 
    }; 

Например, 3 раза это нормально работает, но на 4-й щелчок - ничего не происходит Как это исправить?Нажмите на элемент work unstabilly

+3

Мне любопытно, почему вы используете '.trigger ('click')'? – Malkus

+1

Похоже, вы не [думаете об Угловом пути] (http://stackoverflow.com/a/15012542). – Avalanche

+0

@Malkus У меня есть файловый загрузчик. Я добавил пользовательскую кнопку. Затем я спрятал стандартную кнопку. С trigger() Я стреляю по старой кнопке файлового загрузчика –

ответ

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

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

+0

Я обновил свой ответ, чтобы отразить то, что вы пытаясь сделать на основе вашего последнего комментария. – buzzsaw

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