jquery 触发器('click')在 Safari 中无法使用 angular js

jquery trigger('click') is not working in safari with angular js

Jquery 触发器('click')不适用于 Safari 和 IE,但适用于 Mozilla,chrome,

我正在使用 AngularJS,这是我的代码片段

$scope.browseFile = function () {        
    $('.upfile').trigger('click');
    console.log('click','fired browseFile');      

}  

这是HTML代码

 <a class="btn-attach pull-left" data-ng-click="browseFile()">Attach <i class="glyphicon glyphicon-paperclip"></i></a><input type="file" name="file" class="upfile" id="upfile" onchange="angular.element(this).scope().uploadFile(this.files)" style="display: none;"/>

试试下面的代码:

$('.upfile')[0].trigger('click');

它是一个 css 技巧,并且不可能在 safari 上的隐藏元素上触发事件,所以我做了一些更改,这里是 - 基本上是样式 - style="font-size:1px;opacity:0; height:1px; width:1px;visibility: hidden;" 及其每个浏览器都适合我

<input type="file" name="file" class="upfile" id="upfile" onchange="angular.element(this).scope().uploadFile(this.files)" style="font-size:1px;opacity:0; height:1px; width:1px;visibility: hidden;">

最初来自

$(event.target).trigger('input').trigger('change').trigger('keydown');

但至少应该适用于 IE