Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 当用户用鼠标滚动时,Angularjs ng mouseleave不会运行。另一个解决方案?_Javascript_Angularjs - Fatal编程技术网

Javascript 当用户用鼠标滚动时,Angularjs ng mouseleave不会运行。另一个解决方案?

Javascript 当用户用鼠标滚动时,Angularjs ng mouseleave不会运行。另一个解决方案?,javascript,angularjs,Javascript,Angularjs,我有一个带有模板的指令,该指令将在mouseover和mouseleave上更改: var template1 = '<div data-ng-mouseleave="mouseLeave()" class="slider-banner">' + 'something...' + '</div>'; var template2 = '<div data-ng-mouseover="mouseOver()" class="slider-medium">'

我有一个带有模板的指令,该指令将在mouseover和mouseleave上更改:

var template1 = '<div data-ng-mouseleave="mouseLeave()" class="slider-banner">' +
    'something...' +
'</div>';
var template2 = '<div data-ng-mouseover="mouseOver()" class="slider-medium">' +
    'something else...' +
'</div>';

有时(当用户滚动而不移动鼠标时),mouseLeave()无法正确运行,并且指令上的模板错误。为什么?如何解决这个问题?

您能提供一个plunker吗?从项目的这一部分创建plunker非常困难。我发现了一个类似的问题。我现在知道问题的根源了。我举了一个例子:,看起来firefox和chrome处理得很好。但我没有。您在哪个浏览器上测试了代码?谢谢。我使用谷歌浏览器。你的例子很好,说明mouseleave是有效的。我通过在scroll和mousemove上添加一些EventListener解决了我的问题。我认为这是一些与时间或其他奇怪的错误有关的问题。
scope.mouseOver = function(){
    Elem.html(template1);
    $compile(Elem.contents())(scope);
}
scope.mouseLeave = function(){
    Elem.html(template1);
    $compile(Elem.contents())(scope);
}
// first run (onload)
Elem.html(template1);
$compile(Elem.contents())(scope);