为什么使用angular Directive

时间:2016-01-27 16:24:00

标签: javascript jquery angularjs angular-directive

我附上了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');
    });
 });

2 个答案:

答案 0 :(得分:1)

在创建ng-repeat元素的.gc之前调用了您的函数。快速解决方法是将函数包装在超时中以使其完成渲染。我确信有更好的方法在角度中使用一些钩子,但这将实现你想要的。

setTimeout(function () {
  $(element).find('.gc').click( function() {
    alert('GC');
    $(element).find(".mc").slideToggle('200',function() {  
      $(element).find("span").toggleClass('faqPlus faqMinus');
    });
  });
});

答案 1 :(得分:1)

当Angular链接BroadCategory div时,尚未创建GeneralCategory(ng-repeat)元素。所以永远不会添加点击处理程序。 将d-expand-collapse属性添加到.gc元素。然后,您应该看到您的点击提醒火。

<div d-expand-collapse ng-repeat="gen in group.items">