gpt4 book ai didi

javascript - NG-CLICK需要双击才能触发

转载 作者:行者123 更新时间:2023-12-03 06:01:17 25 4
gpt4 key购买 nike

我的导航栏有一个简单的列表,我使用 ng-click 和 ng-blur 来更改列表中选定的选项。不幸的是,它需要双击才能更改,我无法解释原因。

[1]: /image/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>

最佳答案

我自己找到了解决方案,还有其他 div,我在导航栏中的 href 中引用了这些 div,它们与列表中元素的类具有相同的 ID。我注意到,如果我从 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);
}
};

关于javascript - NG-CLICK需要双击才能触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39741239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com