0

したがって、基本的に私がやりたいことは、使用者がdiv内でマウスを押した場合、テキストボックス内の最後のカーソルポイントを選択すると、ユーザーはテキスト上でマウスをドラッグして選択することができます.

現在、私はこれを持っています:

HTML:

<div class="VS-search-inner" onclick="innerSearchPanelClicked(event)">

JS:

function innerSearchPanelClicked(e){

  var inputToFocus = $( e.target ).find("input").last();
  if(inputToFocus.is('input')){
      inputToFocus.focus();
      var length = inputToFocus.val().length;
      inputToFocus.setCursorPosition(length);
  }
}

これはクリックでうまく機能しますが、マウスダウンに変更しようとすると、入力へのフォーカスが失われ続けます。

4

1 に答える 1

1

入力が選択された後にマウス クリックが行われるため、フォーカスが失われます。タイムアウトを使用してみてください。

function innerSearchPanelClicked(e){
  var target = e.target;
  setTimeout(function () {
    var inputToFocus = $( target ).find("input").last();
    if(inputToFocus.is('input')){
      inputToFocus.focus();
      var length = inputToFocus.val().length;
      inputToFocus.setCursorPosition(length);
    }
  },10);
}
于 2013-06-27T15:50:29.383 に答える