11

カーソルを合わせたときに入力ボックスのテキストを選択するために使用.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で)正しく機能するための警告は、結果フレームで1回クリックする必要があります。

主なアイデアはmouseleave期待どおりに機能することです。

お気づきかもしれませんが、ホバーアウトしてこれを回避するときにテキストの選択を解除する方法がわかりません。

ここに画像の説明を入力してください

4

6 に答える 6

12

使用する.blur();

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

于 2011-05-02T19:09:57.613 に答える
8

この場合、blur() は入力テキストからフォーカスを外すだけで、テキストが選択されていないように見えますが、まだ選択されています。テキストの選択を完全に解除するには、次のようにします。

$(".hoverAble").mouseenter(function() {
    this.select();
}).mouseleave(function() {
    $(this).prop('selectionStart', 0).prop('selectionEnd',0).blur();
});
于 2018-10-06T02:34:36.587 に答える
2

jQuery を使用している場合は、blur() を使用してみてください。

$(this).blur();
于 2011-05-02T19:10:48.263 に答える
1

これは機能します:

$(".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()ます。

于 2011-05-02T19:13:49.563 に答える
1
input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});
于 2012-06-06T06:31:32.293 に答える
0

jQuery を使用する場合は、必要に応じてキャレット位置の選択を解除または設定するための多くのプラグインの 1 つを試すことができます。そうでない場合でも、オープンソース ライセンスにより、これらのプラグインの純粋な JavaScript を使用できます。

于 2018-04-06T08:08:28.210 に答える