我希望在将焦点放在元素上时选择所有文本。
我用过
$('.class-focusin').focusin(function(e) {
$(this).select();
});
但这不是我想要的完美行为。当我在两个字符之间单击时,输入值不会被选中,中间有一个光标。 我想要在chrome浏览器中使用url栏的行为:单击并将光标替换为值选择
随意在这个小提琴中测试我的问题: http://jsfiddle.net/XS6s2/8/
我希望文本能够在选中后接收光标。 选择的答案,下面肯定是我想要的,谢谢
答案 0 :(得分:2)
你可以有一个变量来查看文本是否被选中:
http://jsfiddle.net/jonigiuro/XS6s2/21/
var has_focus = false;
$('.class-focusin').click(function(e) {
if(!has_focus) {
$(this).select();
has_focus = true;
}
});
$('.class-focusin').blur(function(e) {
has_focus = false;
});
答案 1 :(得分:1)
我猜你必须等待浏览器将焦点放在元素上,然后进行选择:
$('.class-focusin').focus(function(e) {
var $elem = $(this);
setTimeout(function() {
$elem.select();
}, 1);
});
呸。或者只是简单地绑定到click事件:
$('.class-focusin').click(function(e) {
$(this).select();
});
答案 2 :(得分:0)
答案 3 :(得分:0)
工作演示http://jsfiddle.net/cse_tushar/XS6s2/22/
$(document).ready(function () {
$('.class-focusin').click(function (e) {
$(this).select();
});
});
答案 4 :(得分:0)
这是Select all the text in an input, focusin的直接副本,这是一个很好的答案
$(".class-focusin").on("focus",function(e){
$(this).select();
});
$(".class-focusin").on("mouseup",function(e){
e.preventDefault();
});