Как выделить текст с помощью jquery, используя фокус - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь выделить текст внутри элемента span по этому коду, но у меня ничего не получается:

<span class="selectme">this text should be selected by click</span> 

$(".selectme").live('focus', function() { $(this).select(); });

Этот, ниже, работает хорошо:

<input value="this text should be selected by click" class="selectme">

$("input.selectme").live('focus', function() { $(this).select(); });

Как мне заставить его работать с элементом span?

1 Ответ

2 голосов
/ 09 мая 2019

span не работает, как input, поэтому краткий ответ: вы не можете этого сделать.Он даже не имеет события focus по умолчанию.

Но есть обходной путь.Вам нужно добавить tabindex="-1", чтобы сделать его фокусируемым, и использовать window.getSelection().selectAllChildren(this);, чтобы выбрать его значение:

$(".selectme").on('focus', function() { 
    window.getSelection().selectAllChildren(this);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<span class="selectme" tabindex="-1">this text should be selected by click</span>

Источник

Также live является устарел ,используйте вместо этого on.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...