jquery触发器('click')在带有角度js的safari中不起作用

时间:2015-01-29 14:43:31

标签: jquery angularjs safari click jquery-trigger

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;"/>

3 个答案:

答案 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工作