Отмените выбор того, что было выбрано для входа, с помощью .select () - PullRequest
7 голосов
/ 02 мая 2011

После того, как я использовал .select(), чтобы выделить текст в поле ввода при наведении, я сделал следующее:

HTML:

<input type="text" class="hoverAble" value="hover here"/><br />

JQuery:

$(".hoverAble").mouseenter(function() {

    this.select();

}).mouseleave(function() {

    //I can't figure what to put here.
});

См. здесь . Предупреждение для правильной работы (в jsfiddle) необходимо щелкнуть один раз в результирующем кадре.

Основная идея: mouseleave работает как , как и ожидалось также.

Как вы могли заметить, я не могу найти способ отменить выделение текста при наведении курсора и избежать этого:

enter image description here

Ответы [ 6 ]

10 голосов
/ 02 мая 2011

использование .blur();

http://jsfiddle.net/robert/adCfw/6/

2 голосов
/ 02 мая 2011

Если вы используете jQuery, попробуйте использовать blur ().

$(this).blur();
1 голос
/ 06 июня 2012
input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});
1 голос
/ 02 мая 2011

Это работает:

$(".hoverAble").hover(function() {

    $(this).select();
    $(this).after("<input type='text' style='height:0;width:0;border:0;padding:0;margin:0;' id='tmp_hidden' />");

}, function(){

    $("#tmp_hidden").select().remove();

});

Должен быть лучший способ решить эту мысль.

Редактировать: конечно, есть blur().

0 голосов
/ 06 октября 2018

В этом случае функция blur () не фокусируется только на вводимом тексте, и, хотя она и выглядит, что текст больше не выделен, он все равно выделен. Чтобы действительно отменить выбор любого текста, вы должны сделать:

$(".hoverAble").mouseenter(function() {
    this.select();
}).mouseleave(function() {
    $(this).prop('selectionStart', 0).prop('selectionEnd',0).blur();
});
0 голосов
/ 06 апреля 2018

если вы используете jQuery, вы можете попробовать один из множества плагинов для отмены выбора или установки позиции каретки в соответствии с вашими потребностями, например, это . если вы этого не сделаете, вы все равно можете использовать чистый JavaScript этих плагинов из-за лицензий с открытым исходным кодом

...