jquery .live 与 IE 的问题
我有以下代码,焦点隐藏一个“虚拟”密码字段(包含单词“密码”)并显示一个真实的密码输入字段。它在除 IE 之外的所有浏览器中都能正常工作。
在 IE 中,如果我按 Tab 键切换到密码字段,它会起作用,但如果我单击密码字段,它会正确聚焦,但我无法输入内容。
$("#passDummy").live('focus',function () {
$(this).hide();
$("#pass").show().focus();
});
这是一个 jsfiddle 在实践中展示它......
如果我使用 .focus 和 .blur 而不是 .live 它也有效,但在这种情况下我需要使用 .live 。
编辑:我正在使用jquery 1.5.1(缩小版本),尽管所有后续版本似乎也是如此。
I have the following code which on focus hides a "dummy" password field (containing the word 'password') and shows a real password input field. It works fine in all browsers expect IE.
In IE, it works if I tab to the password field, but if I click on the password field it focuses correctly but I can't type into it.
$("#passDummy").live('focus',function () {
$(this).hide();
$("#pass").show().focus();
});
Here's a jsfiddle to show it in practice...
If I use .focus and .blur rather than .live it also works, but I need to use .live in this case.
EDIT: I'm using jquery 1.5.1 (minified version) though it seem to be the case on all subsequent versions too.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能不是您想要的答案,但无论如何它就是这样;升级到最新的 jQuery。我用你的 Jsfiddle 和 IE8 对此进行了测试。使用 jQuery 1.5.2 我重现了您的问题。 jQuery 1.6.3,它按预期工作。
使用 /jsfiddle.net/etmrR/
我认为这与文本字段显示得不够快而无法在 IE 中获得焦点有关。
Probably not the answer you want but here it is anyway; Upgrade to the latest jQuery.I tested this with your Jsfiddle and IE8. Using jQuery 1.5.2 I reproduced your problem. Using jQuery 1.6.3 it works as expected.Horrible workaround, but appears to work:
Live example: http://jsfiddle.net/etmrR/
I assume this has something to do with the textfield not being shown quick enough to be given the focus in IE.