我知道如何在单击的指令上检测mousedown事件。但是,当鼠标在我的指令/元素之外时,我的指令也需要变得不可原谅或取消选择。我怎么能这样做?
答案 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');
});
}