Javascript angular.element(“inputFieldId”).focus()不';不要将焦点放在输入字段中
我有一个小型SPA,使用angular ui引导提供选项卡组件。该应用程序通常只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,当该选项卡打开时,该字段应获得焦点 每个选项卡组件的控制器都有一个“tabOpened”和“tabClosed”函数,在打开或关闭该选项卡时调用该函数 在带有输入字段的选项卡的控制器中,我有以下内容:Javascript angular.element(“inputFieldId”).focus()不';不要将焦点放在输入字段中,javascript,angularjs,tabs,Javascript,Angularjs,Tabs,我有一个小型SPA,使用angular ui引导提供选项卡组件。该应用程序通常只显示显示应用程序运行状态的数据,但其中一个选项卡有一个输入字段,当该选项卡打开时,该字段应获得焦点 每个选项卡组件的控制器都有一个“tabOpened”和“tabClosed”函数,在打开或关闭该选项卡时调用该函数 在带有输入字段的选项卡的控制器中,我有以下内容: $scope.tabOpened = function() { $timeout(function() { angular.
$scope.tabOpened = function() {
$timeout(function() {
angular.element("handlerSearchInput").focus();
});
};
值得争论的是,在控制器中这样做是否合理,而不是设计某种指令来进行“focus()”调用,但这不是我首先需要解决的问题。我的第一个问题是,这段代码实际上不起作用。当我打开选项卡时,我可以看到它击中了函数中的断点,但是该字段没有获得焦点。没有错误,只是不起作用
我已经在Firefox和Chrome上测试过了。
angular.element
要么使用字符串
——在这种情况下,它将创建一个新元素,要么使用jQuery
选择器返回一个现有元素
所以您应该使用angular.element(“#handlerSearchInput”).focus()代码>
()Duh。就这样。谢谢