Javascript 当用户用鼠标滚动时,Angularjs ng mouseleave不会运行。另一个解决方案?
我有一个带有模板的指令,该指令将在mouseover和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">'
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);