.show()之后的jQuery .focus()

时间:2014-03-15 19:16:40

标签: javascript jquery focus show synchronous

我有以下代码隐藏一个文本框并显示另一个文本框。当下一个显示时,我需要光标在其上,所以我在其上调用.focus()。但是,即使我将调用.focus()作为第二个参数,它仍然没有聚焦。有什么想法吗?

$(document).ready(function(){
    $('.dummy-password-input').on('click', function() {
        $(this).hide();
        $(this).next().show(0, function() {
            $(this).focus();
        });
    });
});

3 个答案:

答案 0 :(得分:1)

对不起大家的麻烦。事实证明,在弄乱它之后,我的DOM遍历并不完全正确。我删除了输入框周围的div,它就像一个魅力。谢谢。

答案 1 :(得分:0)

出现这种情况,因为$(this)引用刚刚隐藏的输入字段更改代码,如:

        $(this).next().show(0, function() {
            $(this).next().focus();
        });

答案 2 :(得分:0)

$(document).ready(function(){
    $('.dummy-password-input').on('click', function() {
        $(this).hide();
        $(this).next().show().focus();
    });
});

编辑:

检查此fiddle