检测Angularjs中的Mousedown事件

时间:2014-05-16 04:34:51

标签: javascript angularjs angularjs-directive

我知道如何在单击的指令上检测mousedown事件。但是,当鼠标在我的指令/元素之外时,我的指令也需要变得不可原谅或取消选择。我怎么能这样做?

1 个答案:

答案 0 :(得分:9)

在指令中创建一个链接函数,该函数绑定文档上的mousedown事件处理程序。然后,在指令元素本身绑定另一个mousedown事件。后一个处理程序也应该调用event.stopPropagation()来阻止事件一直冒泡到文档级别:

link: function(scope, elem, attrs){
  angular.element(document).bind('mousedown', function(){
    console.log('clicked on document');
  });

  elem.bind('mousedown', function(e){
    e.stopPropagation();
    console.log('clicked on directive');
  });
}

Working Plunker