2011-09-27 57 views
0

我有下面的代码,它在焦点上隐藏了一个“虚拟”密码字段(包含单词“密码”),并显示一个真正的密码输入字段。它适用于所有浏览器期望IE。jQuery的.live与IE的问题

在IE中,它可以工作,如果我选中密码字段,但如果我点击密码字段,它会正确对焦,但我无法输入它。

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

这里有一个jsfiddle显示它在实践中...

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

编辑:我正在使用jquery 1.5.1(缩小版),但它似乎也适用于所有后续版本。

+0

你使用的是什么版本的jquery? – alexl

+0

1.5.1缩小...但它似乎也是所有后续版本的情况。 – Tom

回答

1

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

我用你的Jsfiddle和IE8测试了这个。使用jQuery 1.5.2我再现了你的问题。使用jQuery 1.6.3它按预期工作。

可怕的解决办法,但似乎工作:

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

活生生的例子:http://jsfiddle.net/etmrR/

我认为这事做与文本框没有显示出足够的快给予重点在IE 。

+0

我没有将我的jquery升级到最新版本的问题,但jsfiddle确实使用了最新版本,问题仍然存在。 – Tom

+0

@Tom - 怪异becaiuse我发誓我不能用vlatest重现问题,但可以用1.5.2重现它 - 我会再看一次。 – Jamiec

+0

谢谢。我必须在文本框中双击才能使其正常工作。双击不理想! – Tom