专注于下一个元素

时间:2015-01-27 14:26:01

标签: javascript jquery angularjs

我在我的js中有这一行:

 $('input')[$('input').index(this)+9].focus();

我想专注于下一个元素但是当这行执行时我会聚焦和下一个元素,但我有这个错误:

  

错误:[$ rootScope:inprog] $申请已在进行中   http://errors.angularjs.org/1.3.6/ $ rootScope / inprog?P0 =%24apply       在REGEX_STRING_REGEXP(angular.js:63)       在beginPhase(angular.js:14706)       在Scope。$ get.Scope。$ apply(angular.js:14450)       在link.setTemplate(mtxCalendar.js:23)       在link.initTemplate(mtxCalendar.js:28)       在HTMLInputElement。 (mtxCalendar.js:62)       在HTMLInputElement.jQuery.event.dispatch(jquery.js:4409)       在HTMLInputElement.jQuery.event.add.elemData.handle(jquery.js:4095)       at Object.jQuery.event.trigger(jquery.js:4324)       在HTMLInputElement。 (的jquery.js:4875)

 scope.pressButton = function (val) {
            if (val === 'cross') {
                $('#ui-datepicker-div').hide();
            } else {
                if($.datepicker._lastInput.className.split(' ')[0] === 'champs_returnDate')  {
                    $('#ui-datepicker-div').hide();
                } else{
                    if(!scope.$$phase) {
                        $('input')[$('input').index(this)+9].focus();
                    }
                }
            }
        };

1 个答案:

答案 0 :(得分:0)

您需要通过执行$ timeout()

来延迟执行
$timeout(function(){
    $('input')[$('input').index(this)+9].focus();
})