Angularjs 将事件绑定到特定元素
我正在尝试使用angular将鼠标按下事件绑定到body和它的所有子项(除了一些项目) 我的代码是:Angularjs 将事件绑定到特定元素,angularjs,Angularjs,我正在尝试使用angular将鼠标按下事件绑定到body和它的所有子项(除了一些项目) 我的代码是: angular.element('body *').not('.searchContainer, .searchContainer *, #globalSearchInput, #globalSearchTypeMoreOptions, #globalSearchTypeMo
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.
搜索容器
虽然不清楚您想要实现什么,但我认为这正是您需要的
在主体上使用angularng mousedown
属性,如下所示:
<body ng-mousedown="mousedownFunc()">
<div class="searchContainer" ng-mousedown="$event.stopPropagation()">
...
</div>
创建简单以说明它这是一个性能极差的选择器,由于事件冒泡,因此不需要将鼠标下放到所有这些元素上。也许,如果您描述一下为什么要这样做,我们可以帮助您找到更好的选择。