我正在做一个角度应用程序,但我已经找到了一个实例,我需要使用jQuery。我需要点击一个按钮,它会在另一个隐藏按钮上引发单击事件。我知道这听起来很奇怪,但我需要这个功能,因为我使用的一个角度模块,ng文件上传,不会工作在样式图标上。
我的解决方案是创建两个按钮,一个隐藏的,一个透明的。然后我将样式图标放在透明按钮上,并将另一个按钮隐藏起来。然后,我使用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。任何帮助或替代的方式来实现这一点,将不胜感激。提前感谢!
更新:我认为问题可能与角文件选择有关,因为secondClick现在正在启动。但是角文件选择不是。另外,我将secondClick设置为可见的,当我直接单击它时,它会触发ng文件选择。
发布于 2015-04-09 01:29:21
正如您没有提到的,您的应用程序的棱角版本正在使用。但是,如果您正在使用angular 1.3.x
,那么您必须知道它不再支持IE8浏览器了。
有一个注意事项:
注意: AngularJS 1.3已经放弃了对IE8的支持。在我们的博客上阅读更多关于它的信息。AngularJS 1.2将继续支持IE8,但核心团队不打算花时间解决IE8或更早版本所特有的问题。
根据你的评论:
这个网站的每一个其他部分都是百分之百的角度,并且工作得很完美。就在这种情况下,我想不出一个角度的解。
那么,我想建议你,角确实有一个小的版本的jQuery,称为jqLite
。你可以利用它,比如:
angular.element('#firstClick').on('click', function() {
angular.element('#secondClick').trigger('click');
});
发布于 2015-04-09 01:30:21
编辑:您可以通过具有良好浏览器支持的元素转发鼠标事件,使用: http://www.vinylfox.com/forwarding-mouse-events-through-layers/
如果您有幸不必使用旧的浏览器,那么您就可以避开指针事件CSS属性。
#firstClick {
pointer-events: none;
}
https://stackoverflow.com/questions/29534537
复制