如何使光标闪烁而不是选择

时间:2018-08-18 10:34:34

标签: jquery readonly

$('.inptitle').dblclick(function(e){
	e.preventDefault();
	$(this).attr('readonly', false).focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class='inptitle' value = 'TITLE' readonly = true>

删除readonly之后的

我需要在输入内容的末尾而不是选择内容上闪烁一个光标。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

您需要将焦点移开,然后在 之后放回浏览器,以便浏览器有时间处理该焦点的只读更改和其他更改。这样可以避免眨眼。

要保留空白内容,可以短暂更改文本,然后立即将其放回原处。

这是它的外观:

$('.inptitle').dblclick(function(e){
    e.preventDefault();
    var val = $(this).val();
    $(this).attr('readonly', false).blur();
    setTimeout(function () { 
        $('.inptitle').focus().val(val+" ").val(val);
    }, 10);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' class='inptitle' value = 'TITLE' readonly = true>

观察

我不建议您更改默认行为:双击文本时,选择单击的单词是标准行为。改变这种行为对于用户而言将是令人惊讶的,并且会破坏他们的直觉。