所以我有一个ng-blur功能,如果我这样做就会正确触发
$scope.disableReturnButton = function($event){
document.onkeyup=function(e) {
if(e.which == 13){
$event.target.blur();
return false;
}
}
}
但是,如果我尝试仅在元素上设置keyup事件,则在模糊事件发生时似乎不会触发ng-blur
$scope.disableReturnButton = function($event){
if($event.which == 13){
$event.target.blur();// this blurs the element but doesn't trigger the ng-blur
return false;
}
}
这是标记
<span contenteditable="true" class="blanks"
ng-blur="blurredWhy($event)"
ng-focus="focusedWhy($event)"
ng-bind="data.why"
ng-keyup="disableReturnButton($event)"></span>
答案 0 :(得分:0)
如果在事件处理程序中使用return false;
,则使用jQuery将停止传播并阻止其他事件在链中触发。由于Angular使用jQuery lite(或者你在页面上也有jQuery完整版),返回false会杀死上游事件。
第一个例子可以工作,因为它使用了document.onkeyup,它在jQuery之外注册了事件监听器。