为啥切换效果不适用于使用角度指令的嵌套 div
Posted
技术标签:
【中文标题】为啥切换效果不适用于使用角度指令的嵌套 div【英文标题】:Why toggle effect not working for nested div using angular Directive为什么切换效果不适用于使用角度指令的嵌套 div 【发布时间】:2016-05-04 17:16:43 【问题描述】:我已附上Plunker。我无法访问 .gc
和 .mc
元素。虽然我的代码部分工作并且.bc
类按预期工作。我正在尝试对它们和层次结构应用切换效果
BroadCategory > GeneralCategory > MainCategory
不知道我错过了什么
$(element).find('.gc').click( function()
alert('GC');
$(element).find(".mc").slideToggle('200',function()
$(element).find("span").toggleClass('faqPlus faqMinus');
);
);
【问题讨论】:
【参考方案1】:当 Angular 链接 BroadCategory div 时,尚未创建 GeneralCategory (ng-repeat) 元素。所以永远不会添加点击处理程序。 将 d-expand-collapse 属性添加到 .gc 元素。然后,您应该会看到您的点击警报触发。
<div d-expand-collapse ng-repeat="gen in group.items">
【讨论】:
【参考方案2】:在创建.gc
元素的ng-repeat
之前调用您的函数。一个快速的解决方法是将函数包装在超时中以让它完成渲染。我确信有更好的方法使用一些角度钩子,但这会完成你想要的。
setTimeout(function ()
$(element).find('.gc').click( function()
alert('GC');
$(element).find(".mc").slideToggle('200',function()
$(element).find("span").toggleClass('faqPlus faqMinus');
);
);
);
【讨论】:
以上是关于为啥切换效果不适用于使用角度指令的嵌套 div的主要内容,如果未能解决你的问题,请参考以下文章
Flex-end 不适用于显示 flex 的 div 内的按钮
QMenu mousePressEvent 阻碍了 QAction 切换