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;"/>
答案 0 :(得分:0)
尝试以下代码:
$('.upfile')[0].trigger('click');
答案 1 :(得分:0)
它是一个css技巧,并且不可能在safari上的隐藏元素上触发事件,所以我做了一些更改,这里是 - 基本上在样式 - 样式=&#34;字体大小:1px;不透明度:0 ;高度:1px的;宽度:1px;可见性:隐藏;&#34;并且它为我的每个浏览器工作
<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;">
答案 2 :(得分:0)
最初来自 https://stackoverflow.com/a/21073094/2149740
$(event.target).trigger('input').trigger('change').trigger('keydown');
但至少应该为IE工作