首先,我创建一个简单的示例来查看ng-focus和ng-blur是否在select上被激活,然后是我的实际代码,我找不到为什么第二个不起作用:
<div ng-app ng-init="focus=false;blur=false;active=false"> <select ng-focus="focus=true;blur=false;" ng-blur="blur=true;focus=false;"> <option>sdasdsa</option> <option>dsadsads</option> </select> <input type="text" ng-class="{ myFocus: focus,myBlur: blur }"> </div> <br> <br> <br> <br> <div class="search-input" ng-init="focus=false;blur=false;active=false"> <input type="text" ng-class="{ myFocus: focus,myBlur: blur }"> <div class="selects"> <div class="icon fluid select"> <i ng-class="{'large svg guests icon':rooms==2,'large svg guest icon':rooms==1,'active':{{focus}}}"></i> <label ng-click="closeCalendar()"> <select ng-model="rooms" name="rooms" class="fluid" name="rooms" focus-parent selecter required ng-focus="focus=true;blur=false;" ng-blur="blur=true;focus=false;"> <option value="1">Einzelzimmer</option> <option value="2">Doppelzimmer</option> </select> </label> </div> </div> </div>
解决方法
您不能对选择元素使用ng-focus和ng-blur.
另一种方法是使用ng-change,它将在选择新选项时触发.
请注意,使用ng-change时,还需要具有ng-model.