未选择带有类的Javascript(jQuery)嵌套div
有一个AngularJS应用程序有一个大数据集(一个页面上有许多绑定),我正在使用md virtual repeat来提高性能。据我所知,md virtual repeat指令在HTML未选择带有类的Javascript(jQuery)嵌套div,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,有一个AngularJS应用程序有一个大数据集(一个页面上有许多绑定),我正在使用md virtual repeat来提高性能。据我所知,md virtual repeat指令在HTML表中不能完全工作,因此我使用的是基于div的表。它在一行中包含嵌套的div: <md-virtual-repeat-container class="table-body" navigable> <div layout="row" md-virtual-repeat="data in v
表中不能完全工作,因此我使用的是基于div的表。它在一行中包含嵌套的div:
<md-virtual-repeat-container class="table-body" navigable>
<div layout="row" md-virtual-repeat="data in vm.dataset" flex class="item-row">
<div class="item-cell">
<input type="text" ng-model="data.name">
</div>
<div layout="row" class="unit-container">
<div class="item-cell" flex ng-repeat="_ in data.semiannual track by $index" ng-class="{'separator' : $index == 0}">
<input type="number" ng-model="data.semiannual[$index]">
</div>
</div>
<!-- more unit-container divs with item-cell divs here -->
</div> <!-- end of row div -->
</md-virtual-repeat-container>
也
同时使用鼠标盖
,但未成功。我还尝试了更具体的选择器,如:$('div.item-row div.item-cell')
和nada。
我认为这是因为嵌套的东西,但是也有项单元格
div没有嵌套(不是单元容器
类的子类),它们也没有被选中
附加信息:item行
div上有一个CSS中定义的:hover伪类
我在SO上看到了一些类似的问题,解决方案是将.hover()更改为on('mouseenter'),但它对我不起作用
任何帮助都将不胜感激。提前感谢。当您尝试访问元素时,是否确定您已经编译了DOM?如果您在控制器主体中编译了DOM,则DOM可能还不存在。您是否尝试过将其包装在$timeout(..)
中?@Nikolajdallarsen我正在导航
指令的链接
函数中进行包装,该指令作为md虚拟重复容器
元素的属性提供。选择一个常规的div
效果很好。嗯,可能是虚拟的重复干扰了你。它只渲染可以在视口中看到的DOM(由容器表示),因此根据虚拟重复实现的不同,它可能首先清除所有嵌套元素(包括事件),然后仅重新创建可见的对象。这将导致删除事件。请不要考虑这一点:/解决方法之一是将指令应用于行元素(其中应用了md virtual repeat
),并在该指令中注册(并销毁)事件。这样,即使虚拟重复删除了这些事件,也会使用元素重新创建这些事件。
$('.item-cell').hover(function(){ ... }, function(){ ... });
$('.item-cell').on('mouseenter', function(){ ... });