![](/img/trans.png)
[英]IE8 resets some margins to 0 when triggering a click Javascript event
[英]Triggering click event on an element not working in IE8
我正在制作一个有角度的应用程序,但是我找到了一个需要使用jQuery的实例。 我需要单击一个在另一个隐藏按钮上引发click事件的按钮。 我知道这看起来很奇怪,但是我需要此功能,因为我正在使用的Angular模块ng-file-upload在样式图标上不起作用。
我的解决方案是创建两个按钮,一个隐藏,一个透明。 然后,将样式图标放在透明按钮上,并使另一个按钮隐藏。 然后,我使用jQuery导致在单击第一个按钮时单击第二个按钮。 这在现代的Firefox / chrome中可以正常工作,但在IE8中则完全不能。
<button id="firstClick" class="fa fa-camera-retro"></button>
<button ng-hide="true" id="secondClick" ng-file-select ng-model="files">Upload</button>
$(document).on('click', '#firstClick', function() {
$('#secondClick').trigger('click');
});
我当前正在使用jQuery 1.10.2版。 对此提供任何帮助或替代方式的帮助将不胜感激。 提前致谢!
更新:我认为问题可能与angular-file-select有关,因为secondClick现在正在触发。 但是,angular-file-select不是。 另外,我将secondClick设置为可见,当我直接单击它时,它会触发ng-file-select。
正如您没有提到的,您使用的是应用程序的正式版。 但是,如果您使用的是angular 1.3.x
则必须知道它不再支持IE8浏览器。
有一个注释:
注意: AngularJS 1.3放弃了对IE8的支持。 在我们的博客上阅读有关它的更多信息。 AngularJS 1.2将继续支持IE8,但核心团队不打算花时间解决IE8或更早版本的问题。
根据您的评论:
站点的其他所有部分都是100%成角的,并且效果很好。 正是在这种情况下,我无法想到角度解决方案。
然后,我想建议您,angular确实具有精简版的jQuery,称为jqLite
。 您可以使用它,例如:
angular.element('#firstClick').on('click', function() {
angular.element('#secondClick').trigger('click');
});
编辑:您可以使用http://www.vinylfox.com/forwarding-mouse-events-through-layers/通过具有良好浏览器支持的元素转发鼠标事件。
如果您很幸运,不必使用较旧的浏览器,则可以放弃指针事件CSS属性。
#firstClick {
pointer-events: none;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.