是否有模拟mouseenter事件的指令?
我已经尝试过搜索一个,但我找到的只是将鼠标功能绑定的指令或用于模拟鼠标的karma测试。
我的用例是我已准备好将鼠标悬停的事件绑定,但我正在寻找simulate-mouse ="shouldBeMouseOver"
形式的指令,以便当$scope.shouldBeMouseOver
为真时我放置的元素指令就像有鼠标中心事件一样做出反应。
答案 0 :(得分:2)
<强> UPTATE!强> 以前的解决方案是解决方法。您现在可以使用角度指令(https://docs.angularjs.org/api/ng/directive/ngMouseenter)。
ng-mouseenter="handler()"
以前的解决方案(解决方法)
HTML:
<div simulate-mouse eventhandle="objfromscope">Hover</div> <!-- objfromscope: true or false -->
<div ng-click="objfromscope=!objfromscope">Enable/Disable hover</div>
指令
app.directive('simulateMouse', function() {
return {
restrict: 'AE',
scope: {
eventhandle : '=eventhandle' //eventhandle is two way data binded
},
link: function(scope, element, attrs) {
scope.$watch(function() {
return scope.eventhandle;
}, function(newValue) {
console.log(newValue)
if(newValue){
element.off("mouseenter").on("mouseenter",function(){
onMouseOverCall()
});
}else{
element.off("mouseenter");
}
});
var onMouseOverCall = function(){ /* called only when eventhandle is true */
console.log("hoho")
}
}
};
});