获取 angular 的长度 js ng-repeat li 列表项 jquery
get length of angular js ng-repeat li listing items with jquery
我正在使用 angular ng-repeat
创建 ul-li
列表。但是在 DOMReady
上,我想要已生成的列表的总长度,并且我想 运行 在 "hover" 或 "click" 上 li
上的事件。
但是我得到的长度是 0 并且没有事件正在触发。获得它的最佳方法是什么?
提前致谢!
<ul class="megamenuUL">
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList">
</li>
</ul>
<script>
$(document).ready(function () {
console.log($("ul.megamenuUL > li").length);
});
</script >
悬停时我需要触发的事件 li
$("#divOffers ul.megamenuUL > li > a").hover(function () {
$("#divOffers .megamenuUL > li").removeClass('active');
$(this).parent().find("#divOffers ul.megasubmenu li").removeClass('active');
$(this).parent().find("#divOffers ul.megasubmenu li:eq(0)").addClass('active');
$(this).parent().addClass('active');
});
你看,我不能用 angular 这个
jQuery 在 angular 之前加载,因此您需要延迟才能获得 jQuery 的长度,即 setInterval
..
或者您可以借助 angular 本身在以下问题的答案的帮助下完成此操作:
Calling a function when ng-repeat has finished
如果您需要在重复完成后执行一些代码并使用 length
属性.
从 GroupList 对象本身获取长度
您还可以使用 angular ng-mouseover
和 ng-mouseleave
事件将悬停绑定到来自控制器的函数
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList" ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">
还有 angular jqLite,它是 jQuery 的一个微小的 API 兼容子集,它允许 Angular 在交叉中操纵 DOM - 浏览器兼容的方式。因此,您可以从事件处理中类似的 jQuery 行为中获益。
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList" on-finish-render="ngRepeatFinished">
</li>
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
//do stuff, execute functions -- whatever...
});
谢谢!!
我正在使用 angular ng-repeat
创建 ul-li
列表。但是在 DOMReady
上,我想要已生成的列表的总长度,并且我想 运行 在 "hover" 或 "click" 上 li
上的事件。
但是我得到的长度是 0 并且没有事件正在触发。获得它的最佳方法是什么?
提前致谢!
<ul class="megamenuUL">
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList">
</li>
</ul>
<script>
$(document).ready(function () {
console.log($("ul.megamenuUL > li").length);
});
</script >
悬停时我需要触发的事件 li
$("#divOffers ul.megamenuUL > li > a").hover(function () {
$("#divOffers .megamenuUL > li").removeClass('active');
$(this).parent().find("#divOffers ul.megasubmenu li").removeClass('active');
$(this).parent().find("#divOffers ul.megasubmenu li:eq(0)").addClass('active');
$(this).parent().addClass('active');
});
你看,我不能用 angular 这个
jQuery 在 angular 之前加载,因此您需要延迟才能获得 jQuery 的长度,即 setInterval
..
或者您可以借助 angular 本身在以下问题的答案的帮助下完成此操作:
Calling a function when ng-repeat has finished
如果您需要在重复完成后执行一些代码并使用 length
属性.
您还可以使用 angular ng-mouseover
和 ng-mouseleave
事件将悬停绑定到来自控制器的函数
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList" ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">
还有 angular jqLite,它是 jQuery 的一个微小的 API 兼容子集,它允许 Angular 在交叉中操纵 DOM - 浏览器兼容的方式。因此,您可以从事件处理中类似的 jQuery 行为中获益。
<li ng-class="{'active':$index==0}" data-ng-repeat="cg in GroupList" on-finish-render="ngRepeatFinished">
</li>
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
//do stuff, execute functions -- whatever...
});
谢谢!!