【发布时间】:2015-01-29 01:54:49
【问题描述】:
我最初在 ie8 中为 angularjs 绑定点击事件的方法是这样的:
var w = angular.element($window);
w.bind('click', function(){alert('hi')});
但这当然适用于除 ie8 之外的所有浏览器。所以我尝试了:
function bindEvent() {
if($window.addEventListener)
$window.addEventListener('click', alert('Hi'), false);
else
$window.attachEvent('onclick', alert('Hi ie8'));
}
这适用于所有浏览器,但方式很奇怪。页面加载后,我会收到警报,但是当我单击周围时,我看不到警报。所以警报只在页面加载时触发,但我清楚地说是“点击”或“点击”,如您所见。
我尝试了一些混合方法,例如将 bindEvent 函数粘贴到 $timout 中,甚至从函数定义中删除,然后在 angularjs 控制器中调用 if-else 块。
甚至对 .bind 函数进行了创意,并添加了第三个参数为“false”以防止事件冒泡。我不知道如何将点击事件绑定到 ie8 窗口对象,所以每当我点击页面时,它都会调用一个函数。救命!
【问题讨论】:
标签: angularjs internet-explorer-8 onclick