2016-09-28 4 views
0

私はnavbarの簡単なリストを持っており、ng-clickとng-blurを使ってリスト内の選択されたオプションを変更します。残念ながら、変更するにはダブルクリックが必要で、理由を説明することはできません。NG-CLICKをダブルクリックするとトリガーされます

[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

はあなたの問題のフィドルを提供することができますか? – Davide

+0

コードを共有できますか、可能であればjsfiddleを作成できますか? – Umamaheswaran

+0

私のコードの画像を追加しました。私はフィドルを作成することができますか? –

答えて

0

私は解決策私の自己は、他のdivは、私が参照していること、あるいnavbarのhrefに、要素iのクラスと同じIDを持つnリスト。私はdivからのIDを削除すると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); 
} 
}; 
関連する問題