插入符号/光标不是[真正]使用JQuery在.focus()之后获取焦点

插入符号/光标不是[真正]使用JQuery在.focus()之后获取焦点,jquery,focus,caret,setfocus,Jquery,Focus,Caret,Setfocus,我试图在用户从“自动完成”下拉列表中选择一个值后(使用jquery),将焦点设置到下一个输入框 代码如下所示: 函数showElement(elementName){ $(elementName).show('blind',onElementDisplay(elementName)); } 因此,我希望看到光标/插入符号在函数末尾显示的元素上闪烁,因此用户可以开始输入,但是,这不会发生 这里缺少什么?第二个参数是回调(类型函数)。您正在将onElementDisplay的返回值传递给它,该返回值

我试图在用户从“自动完成”下拉列表中选择一个值后(使用jquery),将焦点设置到下一个输入框

代码如下所示:

函数showElement(elementName){ $(elementName).show('blind',onElementDisplay(elementName)); }

因此,我希望看到光标/插入符号在函数末尾显示的元素上闪烁,因此用户可以开始输入,但是,这不会发生


这里缺少什么?

第二个参数是回调(类型函数)。您正在将
onElementDisplay
的返回值传递给它,该返回值将是
未定义的

添加匿名函数包装器

function showElement(elementName) { 
    $(elementName).show('blind', function(){
        onElementDisplay(elementName); 
    });
}

function onElementDisplay(elementName) {
    $(elementName).focus();
}

不幸的是,这不是问题所在。即使在这个例子中,插入符号也不会被放在下一个输入框中。
elementName
是正确的选择器吗?如果是
id
,则必须以
开头。如果你的代码有另一个问题,我需要看更多来解决它。示例html,示例调用
showElement
function showElement(elementName) { 
    $(elementName).show('blind', function(){
        onElementDisplay(elementName); 
    });
}

function onElementDisplay(elementName) {
    $(elementName).focus();
}