滚动到输入元素时,我可以对其进行聚焦吗?

时间:2015-08-09 13:23:24

标签: javascript angularjs

我替换了我的简单

 <a href="#id">Get notified!</a>

在我转换到AngularJS期间调用$anchorScroll,如Angular JS - Scrolling To An Element By IdHow to handle anchor hash linking in AngularJS

中所述

然而这已经打破了一个很好的功能。 href #id指向输入字段。新的$anchorScroll行为滚动到此元素但未聚焦它。

有没有办法集中注意力?如果我无法直接跳到某个字段并开始输入,它会使此功能毫无用处。 编辑:好的,有没有办法使用AngularJS。我希望尽可能远离普通的旧JS。

以下是从$anchorScroll文档中获取的一个plunker,目标现在是一个输入字段,但滚动到它不会将其聚焦Plunker

2 个答案:

答案 0 :(得分:1)

将此用于焦点元素:

var el = $window.document.getElementById('id');
el.focus();

Dnt忘记向控制器添加$window服务;

答案 1 :(得分:0)

这个怎么样:

// attach an onclick event for every anchor that you have:
for ( every anchor ){
    anchor.onclick = function(){

       var targetID = this.getAttribute( 'href' ).replace( '#', '' ); // or something similar
       var targetElem = document.getElementByID( targetID );

       targetElem.focus();

    }
} 

注意:这只是纯粹的JS。