NG-CLICK для запуска нужно дважды щелкнуть

0

У меня есть простой список для моего навигатора, и я использую ng-click и ng-blur, чтобы изменить выбранный параметр в списке. К сожалению, для этого требуется двойной щелчок, и я не могу объяснить, почему.

[1]: http://i.stack.imgur.com/6XpP9.png

[]: https://jsfiddle.net/9adtb3rt/1/

JS:

angular.module("myApp", [])
.controller("navCtrl", function(){

});

HTML:

<body ng-app="myApp">
  <div class="navbar" ng-controller="navCtrl">
   <ul>
     <div ng-repeat="e in ['about', 'offers', 'requests']"  ng-init="selected = false" class="{{e}}">
       <a href="#{{e}}" ng-blur="selected=false" ng-click="selected = !selected">
       <li ng-class="{'selected': selected}">{{selected}}</li>
      </a>
    </div>
   </ul>
 </div>
</body>
  • 0
    Можете ли вы представить свою проблему?
  • 0
    Можете ли вы поделиться своим кодом или, если возможно, вы можете создать jsfiddle?
Показать ещё 3 комментария
Теги:
angularjs-ng-click

1 ответ

0

Я нашел решение самостоятельно, есть другой div, который я упоминаю в href в navbar, который имеет тот же идентификатор, что и класс элемента в списке. Я заметил, что если я удалю идентификатор из divs, ng-click отлично работает. Спасибо за ваше время.

HTML:

<ul>
 <div ng-repeat="e in ['about', 'offers', 'requests']"  ng-init="selected = false">
   <a href="" ng-blur="selected=false" ng-click="selected = !selected; moveTo(e)">
    <li ng-class="{'selected': selected}">{{e | uppercase}}</li>
   </a>
 </div>
</ul>

JS:

$scope.moveTo = function(e){
 var target = $("."+e);
 if(e === "about"){
  $('html, body').animate({
        scrollTop: 0
  }, 1000);
 }else{
  $('html, body').animate({
        scrollTop: target.offset().top
  }, 1000);
 }
};

Ещё вопросы

Сообщество Overcoder
Наверх
Меню