2014-01-16 18 views
4

是否可以使用ngMousedown向div和ngMouseup添加類以再次移除該類? 目前我使用ng-mousedown =「activateClass()」,在activateClass()更改$ scope.className =「數據激活」,並使用ng-mouseup與其他函數再次更改它。並使用ng-class來添加類「數據激活」 我不想使用$ scope.className並將其與控制器中的函數進行更改,因爲此函數用於多個div,而且我不想添加班級我所有的divs。Angular js:如何使用ngMousedown ngMouseup

謝謝。

回答

1

如果你不想使用控制器,你可能只寫NG-鼠標按下= 「的className = '數據活動'」 在你看來

4

您的意思是這樣的:

<div ng-mousedown="upordown='down'" 
    ng-mouseup="upordown=''" 
    ng-class="upordown">content</div> 
4

可以使用NG事件與納克級來實現它:

<html ng-app> 
<head> 
<script src="http://code.angularjs.org/1.2.9/angular.min.js"></script> 
<script src="http://code.angularjs.org/1.2.9/angular-animate.min.js"></script> 
</head> 
<body> 
<input type="button" value="click me" ng-mousedown="className='data-active'" ng-mouseup="className=''"> 
<br> 
<span class="base-class" ng-class="className">Sample Text</span> 
</body> 
</html> 
7

通常控制器不應該關心你的DOM。你正在嘗試做什麼似乎更適合於一個指令。我想實現一個指令:

app.directive("highlight", function() { 
    return function(scope, element, attrs) { 
    element.on('mouseup', function(event) { 
     element.removeClass(attrs.highlight) 
    }) 
    element.on('mousedown', function(event) { 
     element.addClass(attrs.highlight) 
    }) 
    } 
}) 

,並用它在一個div上像這樣

<div highlight="active"> 
     my content is here 
</div> 

其中作爲活躍是我的CSS類的名稱。