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")
}
}
};
});
不會是簡單的使用範圍變量,如'NG東西「類」? – charlietfl 2014-12-05 15:29:00
還有其他的行爲,我不能改變的元素,這就是爲什麼我要繞模擬鼠標的路線。 – 2014-12-05 15:30:19
你將不得不創建一個事件對象,然後包括座標並觸發mouseover – charlietfl 2014-12-05 15:31:54