繁体   English   中英

每次都为所有实例触发AngularJS指令$ document click事件

[英]AngularJS directive $document click event is firing for all instances everytime

我想在文档中附加一个事件。 单击文档时,我想删除我的指令元素。 但它也为所有过去的实例开火。

以下是代码:

link: function(scope, iElement, iAttrs) {
      $document.on('click',function(){
          iElement.slideUp('fast',function(){
              $(this).remove();
          });
      });
    }

尝试删除destroy handelr中的处理程序

link: function (scope, iElement, iAttrs) {
    function handler() {
        iElement.slideUp('fast', function () {
            $(this).remove();
        });
    }

    $document.on('click', handler);
    scope.$on('$destroy', function () {
        $document.off('click', handler);
    })
}

当你添加像这样的jQuery事件时,即使在指令被销毁之后,事件也会保持活跃状态​​。 你必须特别关闭这个事件:

link: function(scope, iElement, iAttrs) {
  $document.on('click',function(){
      iElement.slideUp('fast',function(){
          $(this).remove();
          $document.off('click');
      });
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM