在鼠标按下时选择文本框内部

时间:2013-06-27 15:46:00

标签: javascript jquery

所以基本上我想做的是如果使用鼠标按下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);
  }
}

这在点击时效果很好,但如果我尝试将其更改为鼠标按下它,则会不断关注输入。

1 个答案:

答案 0 :(得分: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);
}