Javascript 将焦点设置在隐藏的元素上
我正在寻找一种方法来触发一个焦点事件,该事件发生在一个元素在DOM中被识别为可聚焦之后 我正在显示基于先前输入的表单元素。这很有效。 然后我想设置用户输入的焦点 以下函数无法工作,除非我使用setTimeout在行上设置断点。 我尝试过使用函数回调,但也失败了Javascript 将焦点设置在隐藏的元素上,javascript,jquery,Javascript,Jquery,我正在寻找一种方法来触发一个焦点事件,该事件发生在一个元素在DOM中被识别为可聚焦之后 我正在显示基于先前输入的表单元素。这很有效。 然后我想设置用户输入的焦点 以下函数无法工作,除非我使用setTimeout在行上设置断点。 我尝试过使用函数回调,但也失败了 function triggerFocus(id,timeout){ console.log('triggerFocus') ; console.log(id) ; /* the following works i
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键代码实现此目的的示例,请参阅
我发现在触发模糊事件之前,另一个元素必须是可聚焦的。该函数有一个complete
回调,您可以在这种情况下使用它:
$('#emailRow').show(400, function(){
.
.
.
})
示例:如何显示元素?添加一些代码。
$('#emailRow')后面缺少分号。show()
不带回调。。。我试试看。在我的机器上回调函数失败。谢谢你的CD。我将您的JSFIDLE示例更改为在blur上执行,问题仍然存在。在模糊事件发生之前,该元素看起来必须是可聚焦的。发现如果该元素在模糊事件发生之前显示,则该元素可以工作。感谢您的输入@CD。它帮助我找到了一个解决办法。