IE的jquery .live问题

时间:2011-09-27 13:21:17

标签: javascript focus jquery

我有以下代码,焦点上隐藏了一个“虚拟”密码字段(包含“密码”一词),并显示一个真实的密码输入字段。它适用于所有希望IE浏览器的浏览器。

在IE中,如果我选择密码字段,它会起作用,但如果我点击密码字段,它会正确聚焦,但我无法输入。

    $("#passDummy").live('focus',function () {
        $(this).hide();
        $("#pass").show().focus();
    });

这是一个jsfiddle,可以在实践中展示它......

如果我使用.focus和.blur而不是.live它也可以,但在这种情况下我需要使用.live。

编辑:我正在使用jquery 1.5.1(缩小版),但在所有后续版本中似乎都是如此。

1 个答案:

答案 0 :(得分:1)

可能不是你想要的答案,但无论如何它都在这里;升级到最新的jQuery。

我用你的Jsfiddle和IE8对它进行了测试。使用jQuery 1.5.2我重现了你的问题。使用jQuery 1.6.3它按预期工作。

可怕的解决方法,但似乎有效:

$("#pass").show();
setTimeout(function(){$('#pass').focus()},10);

实例:http://jsfiddle.net/etmrR/

我认为这与文本字段没有足够快地显示在IE中的关注点有关。