2015-03-23 7 views
0

В следующем коде при щелчке по td цвет изменяется для td, но при нажатии на какой-либо другой td старый цвет td остается как очистить все цвета td. Я не могу использовать jquery или угло- JQueryAngularjs меняет цвет фона

<tr ng-repeat="r in myrows"> 
    <td style="width:100px;"><a href="javascript:void(0);" ng-click="getorder($event,r.id)" style="display:inline-block;">{{r.title}}</a></td 
</tr> 

$scope.getorder = function($event,release_id) 
{ 
    console.log($event.currentTarget.parentNode); 
    td = $event.currentTarget.parentNode; 
    $event.currentTarget.parentNode.backgroundColor="red"; 

} 
+0

Здравствуйте :) вы могли бы объяснить более ясно, что вы пытаетесь достичь? Это то, что когда вы нажимаете на первый 'td', он поворачивается к цвету, и когда вы нажимаете на другой' td', он меняет цвет whie, а все остальные 'td's возвращаются к белым? – SWLim

+0

когда я clieck на втором td или третьем td ... я хочу, чтобы все остальные td стали белыми – Rajeev

ответ

3

вы можете сделать это в угловом образом с помощью ng-class или ng-style,

определить переменную область действия в контроллере,

$scope.clickedElm = -1; 

чан Е ng-click к

<a href="javascript:void(0);" ng-click="getorder($event,r.id); $parent.clickedElm = $index"... 

и использовать ng-class в теге

<a href="javascript:void(0);" ng-click="getorder($event,r.id); $parent.clickedElm = $index" ng-class="{differentBg : ($index == $parent.clickedElm)}"... 

Примечание: Вы должны вызвать объем переменной clickedElm по $parent.clickedElm, потому что ng-repeat директива создать дочерний объем в каждой итерации.

вот sample demo

+0

Что делает $ index здесь – Rajeev

+0

Также как по умолчанию загорать первый тд? – Rajeev

+0

его индекс 'ng-repeat' в первом повторе' $ index = 0', во втором повторении '$ index = 1' аналогично .. :) –

Смежные вопросы