一个元素上的事件触发另一个元素的事件

时间:2013-09-24 14:54:15

标签: javascript angularjs

我将使用一个特定的示例,但这可能适用于任何事件,在一个元素上触发任何事件。假设我们点击 a <input>时,我们希望关注 <span>。我们可以使用如下指令来执行此操作:

<div ng-controller="Ctrl">
    <span ng-focus-other>focus</span><input>
<div>

app.directive("ngFocusOther", function () {
    return function (scope, element) {
        element.bind("click", function () {
            this.nextSibling.focus();
        });
    };
});

然而,这似乎不是 Angular 。如果对DOM进行任何更改(例如,如果<input><span>之前移动),这也无效。如果相同的代码可以处理多组<span> - <input>组合,也许每个组都有不同的DOM布局,那也很好。

使用一个事件在另一个元素上触发另一个事件的Angular方式是什么?

1 个答案:

答案 0 :(得分:1)

为什么不单击span设置一个名为“inputFocused”的布尔值为true,然后让输入注意该范围变量。即。

<span ng-click="inputFocused = true">FOCUS</span>
<input ng-focus="inputFocused" value="GIVE ME FOCUS">