Angularjs 将事件绑定到特定元素

Angularjs 将事件绑定到特定元素,angularjs,Angularjs,我正在尝试使用angular将鼠标按下事件绑定到body和它的所有子项(除了一些项目) 我的代码是: angular.element('body *').not('.searchContainer, .searchContainer *, #globalSearchInput, #globalSearchTypeMoreOptions, #globalSearchTypeMo

我正在尝试使用angular将鼠标按下事件绑定到body和它的所有子项(除了一些项目)

我的代码是:

angular.element('body *').not('.searchContainer, .searchContainer *, 
                              #globalSearchInput, #globalSearchTypeMoreOptions,
                              #globalSearchTypeMoreOptions *').bind('mousedown', 
                              function(e){
                                    scope.targetElement = angular.element(e.target);
                              });
但是,它将事件绑定到not too中的项目


我也尝试过使用jQuery,但仍然将事件附加到not选择器。

如果我误读了你的帖子,请原谅,但你似乎愿意使用jQuery而不是js

使用jquery,您可以绑定到
$('body').mouseup()事件,如果目标元素是“异常”之一,则停止事件传播:

//创建一个对象以包含“异常”元素(粉色元素)
var notMeElems=$(“#globalSearchInput,.searchContainer”);
//绑定到bodey mouseup事件
$('body').mousedown(函数(e){
//如果目标元素是排除对象的一部分。。。
如果($(e.target).is(notMeElems)){
//停止事件传播
返回false;
}
//或者做点别的
$(this.toggleClass('black');
});
div{
填充:20px;
边框:虚线2px钢蓝色;
背景色:#ffffff;
}
.searchContainer,#globalSearchInput{
背景颜色:粉红色;
}
布莱克先生{
背景色:#000000;
}

#全球搜索输入
搜索容器
3.
4.

搜索容器
虽然不清楚您想要实现什么,但我认为这正是您需要的

在主体上使用angular
ng mousedown
属性,如下所示:

<body ng-mousedown="mousedownFunc()">
<div class="searchContainer" ng-mousedown="$event.stopPropagation()">
   ...
</div>

创建简单以说明它

这是一个性能极差的选择器,由于事件冒泡,因此不需要将鼠标下放到所有这些元素上。也许,如果您描述一下为什么要这样做,我们可以帮助您找到更好的选择。