Javascript 选择输入中的所有文本,焦点在

Javascript 选择输入中的所有文本,焦点在,javascript,jquery,Javascript,Jquery,当我将焦点赋予元素时,我希望选择所有文本 我曾经 $('.class-focusin').focusin(function(e) { $(this).select(); }); 但这不是我想要的完美行为。当我在两个字符之间点击时,输入值不被记录,中间有一个光标。 我想了解chrome浏览器中url栏的行为:单击,光标被选择的值替换 请随意在此小提琴中测试我的问题: 我希望文本能够在选中后接收光标。 选择的答案,下面肯定是我想要的,谢谢我想您必须等待浏览器将焦点放在元素上,然后进行选择

当我将焦点赋予元素时,我希望选择所有文本

我曾经

$('.class-focusin').focusin(function(e) {
    $(this).select();
});
但这不是我想要的完美行为。当我在两个字符之间点击时,输入值不被记录,中间有一个光标。 我想了解chrome浏览器中url栏的行为:单击,光标被选择的值替换

请随意在此小提琴中测试我的问题:

我希望文本能够在选中后接收光标。
选择的答案,下面肯定是我想要的,谢谢

我想您必须等待浏览器将焦点放在元素上,然后进行选择:

$('.class-focusin').focus(function(e) { 
    var $elem = $(this);
    setTimeout(function() {
    $elem.select();
    }, 1);
 });
恶心。或者干脆绑定到click事件:

$('.class-focusin').click(function(e) { 
    $(this).select();
 });

尝试使用“单击”而不是“聚焦”

$('.class-focusin').click(function(e) {
    $(this).select();
});

再见

工作演示


您可以使用一个变量来查看文本是否已被选中:


这是一个直接复制的,这里有一个很好的答案

$(".class-focusin").on("focus",function(e){
    $(this).select();
});

$(".class-focusin").on("mouseup",function(e){
    e.preventDefault();
});

只需跟随小提琴。您希望人们能够再次单击鼠标来定位光标吗?然后一个简单的点击事件就会出现,不是吗?使用
0
作为超时将更合适-尽管我同意你的“恶心”评价:)点击的问题是你失去了进入标签的能力..正在尝试在双标题中使用点击+聚焦,因为在..@jenson button事件中使用tab键时focusin可以正常工作,这一点非常好。我想在这种情况下,使用超时是一种方法,虽然很难看。这不是我想要的,当我再次单击选定文本时,它不会启用光标。这不是我想要的,当我再次单击选定文本时,它不会启用光标。当我再次单击选定文本时,它不是我想要的,它没有启用游标,它也允许使用tab键
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; 
});
$(".class-focusin").on("focus",function(e){
    $(this).select();
});

$(".class-focusin").on("mouseup",function(e){
    e.preventDefault();
});