即使使用setTimeout(),也不会关注元素

时间:2017-12-12 12:08:06

标签: javascript jquery angular

我试图使用jquery将焦点设置为元素,因为如果元素位于组件之外,则可以使用角度忽略的渲染器

但是$(“#selector”)。focus()不起作用尝试以下

不工作

setTimeout(() => $(window.parent.document).find("button[tabindex='0']").first().focus(), 400);

尝试在上面的代码中将超时增加到1000以上,但仍无效。

以下令人惊讶的作品

  setTimeout(() => $(window.parent.document).find("button[tabindex='0']").first().focus(), 100);
    setTimeout(() => $(window.parent.document).find("button[tabindex='0']").first().focus(), 300);

我不知道为什么第二种方法有效。我真的不喜欢第二种方法。

请建议 1.在不使用两个setTimeout的情况下执行上述操作的替代方法。 2.使用角度设置焦点的更好方法(比如使用渲染器,但要聚焦的元素在iam设置焦点的组件之外)而不是jquery

0 个答案:

没有答案