Javascript ng模糊不在父元素上触发
我试图在Javascript ng模糊不在父元素上触发,javascript,html,angularjs,dom,angularjs-directive,Javascript,Html,Angularjs,Dom,Angularjs Directive,我试图在上使用ng blur,但它没有启动。它只在子元素上激发 这不是特定于或的。根据Angular,ng blur会对“气泡”产生反应。“focusout”事件气泡,但没有ng focusout 我是否遗漏了什么,或者我是否需要创建一个新的指令来处理focusout事件 以下是代码片段和: html 一种方法就是创建一个自己的焦点输出指令 角度模块(“应用程序”,[]) .controller(“Ctrl”,函数(){ this.blurFn=函数($event){ 控制台日志(“耶,模糊”
上使用ng blur,但它没有启动。它只在子
元素上激发
这不是特定于
或
的。根据Angular,ng blur
会对“气泡”产生反应。“focusout”事件气泡,但没有ng focusout
我是否遗漏了什么,或者我是否需要创建一个新的指令来处理focusout事件
以下是代码片段和:
html
一种方法就是创建一个自己的焦点输出指令 角度模块(“应用程序”,[]) .controller(“Ctrl”,函数(){ this.blurFn=函数($event){ 控制台日志(“耶,模糊”); this.name=“聚焦于”+$event.target.name; }; 此项。项目=[ {A:“111”,B:“222”}, {A:“111”,B:“222”}, {A:“111”,B:“222”}, {A:“111”,B:“222”}, {A:“111”,B:“222”} ]; //这就是其他处理程序的定义方式。。。 }).directive('focusout',['$parse',function($parse){ 返回{ 编译:函数($element,attr){ var fn=$parse(attr.focusout); 返回函数处理程序(范围、元素){ 元素.on('focusout',函数(事件){ 作用域$apply(函数(){ fn(作用域,{$event:event}); }); }); }; } }; }]);代码>
{{ctrl.name}}
谢谢您的示例。有什么好方法可以支持这种跨浏览器吗?我刚刚意识到我的问题还没有结束。即使我离开了镜头,但留在了镜头内,我也会把焦点拿出来event@NewDev这就是focus out的含义,对吧,您希望它们冒泡,所以即使您留下任何输入,它们也会冒泡(tr没有focusout/blur,它是针对表单元素,而不是html中的每个元素),这与你现在的问题完全背道而驰。@NewDev你可能想重新思考一下你想做什么>你到底想做什么?可能有更好的解决办法。我同意。所问的问题得到了回答。
<div ng-app="App">
<div ng-controller="Ctrl as ctrl">
<table>
<tr ng-repeat="item in ctrl.items" ng-blur="ctrl.blurFn()">
<td><input ng-model="item.A"/></td>
<td><input ng-model="item.B"/></td>
</tr>
</table>
</div>
</div>
angular.module("App", [])
.controller("Ctrl", function(){
this.blurFn = function($event){
console.log($event.target);
};
this.items = [
{A: "111", B: "222"},
{A: "111", B: "222"},
{A: "111", B: "222"},
{A: "111", B: "222"},
{A: "111", B: "222"}
];
});