我知道如何在单击的指令上检测mousedown事件.但是,当鼠标在我的指令/元素之外时,我的指令也需要变得不可原谅或取消选择.我怎样才能做到这一点?
解决方法
在指令中创建一个链接函数,该函数绑定文档上的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'); }); }