【发布时间】:2013-02-27 20:53:04
【问题描述】:
我正在寻找一种方法来触发焦点事件,该事件发生在元素在 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) ;
}
http://jsfiddle.net/pvrSU/ 中的示例展示了如何使用 tab keyCode 实现此目的 我发现在触发模糊事件之前,另一个元素必须是可聚焦的。
【问题讨论】:
-
如何显示元素?添加一些代码。
-
$('#emailRow').show()后缺少分号
标签: javascript jquery