【发布时间】:2011-07-29 07:03:46
【问题描述】:
这个问题有一点背景。请查看我最近发布的另外两个相关问题:
How to select text in a textbox cross-browser
Infinite loops created in google chrome
警告词:第二个链接可能是红鲱鱼。
好的,所以我的问题是我试图拥有它,所以当用户第一次点击或进入文本框时,所有文本都应该被选中。如果文本框有焦点,随后点击文本框内的文本应该正常(即不会重新选择所有文本)。我在上面第一个链接中选择的答案是我发现在所有浏览器中都有效的答案。为方便起见,将代码贴在下面:
$('input[type="text"]').live('focus', function (event) {
var inp = this;
setTimeout(function () {
inp.select();
}, 1);
event.stopPropagation();
event.preventDefault();
return false;
});
现在我上面的第二个链接是我似乎正在使用这种方法。似乎间歇性地,谷歌浏览器卡在某个地方并开始快速改变文本框之间的焦点。你可以在这里看到我认为正在发生的事情:http://jsfiddle.net/ajbeaven/XppG9/14/
就像我说的那样,这似乎是一个间歇性问题,因此您可能必须尝试重新加载页面几次才能查看我认为可能导致焦点变化的原因。请记住,它似乎只发生在 chrome 中。
感谢任何可以阐明的人!
【问题讨论】:
-
似乎 chrome 一次只能聚焦到一个对象,因此每次发生事件时它都会切换到对象。
-
在 Chrome 中的 jsFiddle 中很容易看到。我不知道为什么会这样。删除计时器会使问题消失,但选择不会坚持。我很想知道答案是什么。
标签: javascript jquery google-chrome