将焦点设置在隐藏的元素上

时间:2013-02-27 20:53:05

标签: javascript jquery

我正在寻找一种方法来触发在DOM中将元素识别为可聚焦之后发生的焦点事件。

我正在根据之前的输入显示表单元素。这样可行。 然后我想设置用户输入的焦点。

除非我在setTimeout的行上设置断点,否则以下函数无法工作。 我尝试过使用函数回调也失败了。

function triggerFocus(id,timeout){
    console.log('triggerFocus') ;
    console.log(id) ;
    /* the following works if a breakpoint is set*/
    setTimeout( function() { $( id ).focus() }, timeout ) ;
}

/* code used to show the elements from another function */
if ( $('#first').val() == '') {
    $('#firstRow').show() ;
    $('#middleRow').show() ;
    $('#lastRow').show() ;
    $('#emailRow').show() ;    
    triggerFocus($('#first'),100) ;    
} else {
    $('#docket').blur(docketBlur) ;
    $('#firstRow').show() ;
    $('#docketRow').show() ;
    triggerFocus($('#docket'),100) ;    
}

显示如何使用tab keyCode实现此目的的示例位于http://jsfiddle.net/pvrSU/ 我发现在触发模糊事件之前,其他元素必须是可聚焦的。

1 个答案:

答案 0 :(得分:1)

show()函数有complete回调,在这种情况下您可以使用它:

$('#emailRow').show(400, function(){
 .
 .
 .
})

示例:http://jsfiddle.net/ar5wS/