angular $(event.target).addclass在firefox中不起作用

时间:2015-10-28 10:08:46

标签: angularjs firefox events javascript-events

我正在研究angularjs。我在html页面上有一个按钮,在ng-click事件中,它将在控制器中调用一个函数来传递参数' event'。

< button ng-click="addStatus($event)"> ADD < /button>    

现在在控制器中,对于addStatus函数,我传递了$ event参数。在addStatus函数中,对于event.target,我添加了一个名为&#39; added-status&#39;的类。

$scope.addStatus = function ($event){

    $(event.target).addClass('added-status'); 
}

在Chrome上一切正常,但对于firefox,它会给出错误&#39;事件未定义&#39;。在mozilla firefox中可以做些什么呢? 谢谢!

2 个答案:

答案 0 :(得分:1)

如果(!事件) {event = window.event;}

使用上述解决方案将此代码包含在控制器中,它将为Firefox定义事件,因为它不存在。

所以,最终的代码将是

if(!event){
  event= window.event;
}
$scope.addStatus = function ($event){
    $(event.target).addClass('added-status'); 
}

答案 1 :(得分:0)

实际上你在html部分的ng-click中传递了两个参数但是在控制器$scope.addStatus函数中你只传递了一个参数,它是第一个参数。显然它是未定义的。

进行更改

在html中

<button ng-click="addStatus($event)"> ADD < /button>

在控制器中

$scope.addStatus = function (event){
    $(event.target).addClass('added-status'); 
}