Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度鼠标事件仅在firefox上停止工作_Javascript_Angularjs_Firefox_Requirejs - Fatal编程技术网

Javascript 角度鼠标事件仅在firefox上停止工作

Javascript 角度鼠标事件仅在firefox上停止工作,javascript,angularjs,firefox,requirejs,Javascript,Angularjs,Firefox,Requirejs,我正在使用angular和requireJs作为文件依赖项构建一个站点。 发生了一件奇怪的事情,只是出于无缘无故,ng click/ng mouseover/ng mouseout停止在firefox上工作。他们在IE10和Chrome上保持正常工作。 页面正常呈现,使用控制器和服务,没有错误,绑定工作正常。 只有ng事件不起作用,而且只在firefox上。有人知道为什么会这样吗???我试着使用data ng事件,但不起作用 HTML: <div class="btn-group-

我正在使用angular和requireJs作为文件依赖项构建一个站点。 发生了一件奇怪的事情,只是出于无缘无故,ng click/ng mouseover/ng mouseout停止在firefox上工作。他们在IE10和Chrome上保持正常工作。 页面正常呈现,使用控制器和服务,没有错误,绑定工作正常。 只有ng事件不起作用,而且只在firefox上。有人知道为什么会这样吗???我试着使用data ng事件,但不起作用

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;
});
HTML:
JS
定义([],函数(){
函数主页($scope、$http、水平条形图、垂直条形图){
$scope.data={};
$scope.title='title';
$scope.subtitle='subtitle';
$scope.activateBar=函数(id){
水平条形图。激活杆(id);
}
$scope.defuseBar=函数(id){
水平条形图。除油杆(id);
}
$scope.clicked=function(){
console.log('clicked');
}
//init($scope,'horizon');
}
MainPage.$inject=[“$scope”、“$http”、“horizontalBarChart”、“VerticalBarchart”];
返回主页;
});

好的,我得到了这个问题,原因未知,我将尝试进一步研究,将鼠标事件指令绑定到元素在ng重复循环中不起作用。它在chrome上运行得很好,但在firefox和IE上无法运行。我怀疑这与浏览器JS引擎的性能有关。Chromes JS引擎是目前最快的,它可以更好地管理元素的重复解析和独立事件侦听器的连接

因此,为了解决这个问题,我使用事件委派,将ng click/ng mouseevent附加到wrapping元素,捕获wrapp上的Bubbling鼠标事件并在那里进行处理。 这也是为执行附加多个事件处理程序的总体良好实践。
wrap将捕获所有子元素事件,并使用工厂函数触发在$scope上定义的正确函数。您可以使用事件对象确定单击了什么元素。

有人知道吗?我没有脚本错误,我重新安装了firefox。脚本在包括Opera、Chrome和IE10在内的所有其他浏览器中都能完美运行。没有人有这个问题?????我在递归树结构中也有同样的问题,但它在IE和Chrome中运行良好。Firefox是唯一的麻烦制造者。