Добавить класс при фокусе
Доброго времени суток.
Есть шаблон template.htm примерно с такой структурой, но сильно накрученный другими элементами (которые не имеют отношения к вопросу):
<div>
<div class="test">
<label for="name">name</label>
<input type="text" name="name" ng-model="item.name">
</div>
<div class="test">
<label for="desc">desc</label>
<input type="text" name="desc" ng-model="item.desc">
</div>
<div class="test">
<label for="count">count</label>
<input type="text" name="count" ng-model="item.count">
</div>
<div class="test">
<label for="label">label</label>
<input type="text" name="label" ng-model="label">
</div>
</div>
Подскажите, как правильно добавлять и удалять класс для блока div class="test" при фокусе дочернего input? В рамках одного div и input все понятно... Вот так:
<div class="test" ng-class="{'focused': focused}>
<label for="name">name</label>
<input type="text" name="name" ng-model="item.name" ng-focus="focused=true" ng-blur="focused=false">
</div>
Но как быть в случаи наличия десятка разных input? |
TestUser013,
$scope.focused = {name: false, desc: false, count: false, label: false}
<div class="test" ng-class="{'focused': focused.name}>
<label for="name">name</label>
<input type="text" name="name" ng-model="item.name" ng-focus="focused.name=true" ng-blur="focused.name=false">
...
</div>
|
destus,
Это получается, что для каждого input надо свою переменную? А нельзя как-то через $element или $parent? :( |
TestUser013,
Можно.
$scope.focusInput= function($event )
{
angular.element($event.target).parent().addClass('focused');
};
$scope.blurInput= function($event )
{
angular.element($event.target).parent().removeClass('focused');
};
<div class="test">
<label for="name">name</label>
<input type="text" name="name" ng-model="item.name" ng-focus="focusInput($event)" ng-blur="blurInput($event)">
</div>
|
Спасибо! :)
Чей-то плюсики не ставятся. Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его destus :blink: |
| Часовой пояс GMT +3, время: 20:00. |