2014-11-25 47 views
0

我与角和requireJs作为文件相关建成了现场工作的工作。 一个奇怪的事情发生了,suddnly毫无apperent原因NG-点击/ NG-鼠标悬停/ NG-鼠标移开停在Firefox的工作。他们在IE10和Chrome上正常工作。 页面正常呈现,使用控制器和服务,我没有得到错误,并绑定工程。 它只有ng事件不工作,只在Firefox上。任何人有一个想法为什么会发生这种情况我尝试使用data-ng事件,但那个dos不工作。角鼠标事件停止在Firefox只有

HTML:  
<div class="btn-group-vertical" role="group" aria-label="Vertical button group" > 
    <button type="button" class="btn btn-default" ng-repeat="item in data"> 
     <a href="#" data-barid="" data-ng-click="clicked()" data-ng-mouseover="activateBar(item.id)" data-ng-mouseout="defuseBar(item.id)"> 
      {{item.name}} 
     </a> 
    </button> 
</div> 

JS 
define([],function(){ 
function MainPage($scope,$http,horizontalBarChart,verticaltalBarChart){ 
    $scope.data={}; 
    $scope.title = 'title'; 
    $scope.subtitle = 'subtitle'; 
    $scope.activateBar = function(id){ 
     horizontalBarChart.activateBar(id); 
    } 
    $scope.defuseBar = function(id){ 
     horizontalBarChart.defuseBar(id); 
    } 

    $scope.clicked = function(){ 
     console.log('clicked'); 
    } 
    //horizontalBarChart.init($scope,'horizon'); 
} 
MainPage.$inject = ['$scope','$http','horizontalBarChart','verticaltalBarChart']; 
return MainPage; 
}); 
+0

任何人有任何想法?我没有脚本错误,我重新安装了Firefox。 脚本完美适用于所有其他浏览器,包括Opera,Chrome和IE10。没有人有这个问题????? – 2014-11-26 11:49:57

回答

1

行,所以我得到了这个问题,对于一些未知的原因,我会尝试进一步研究,鼠标事件指令结合的元素不以ng重复循环工作。它在Chrome中工作得很好,但无法在Firefox IE浏览器中工作。我怀疑它与浏览器的JS引擎的性能率有关。 Chromes JS引擎是当今最快的,它可以管理单独重复的元素分析,更好地分离单独的事件监听器。

因此,要解决这个问题,我使用事件委托,该NG-点击/ NG-的MouseEvent连接到包木窗元素,醒目的包装的bubling鼠标事件和处理它。 这也是用于附加多个事件处理程序以实现性能的总体良好实践。 的包裹将捕获所有的子元素的事件,并会使用工厂函数来触发$范围定义正确的函数。您可以确定使用事件对象单击的元素是什么。

+0

我在递归树结构中遇到同样的问题,但它在IE和Chrome中正常工作。 Firefox是唯一的麻烦制造者。 – 2015-03-09 15:38:19