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 回答