【问题标题】:Unselect what was selected in an input with .select()使用 .select() 取消选择输入中选择的内容
【发布时间】:2011-08-17 04:58:19
【问题描述】:

在我使用.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.
});

here警告它正常运行(在 jsfiddle 中),您必须在结果框架中单击一次。

主要思想是mouseleave 也作为as expected 工作。

您可能已经注意到,当您将鼠标悬停在屏幕上时,我想不出一种方法来取消选择文本并避免这种情况:

【问题讨论】:

    标签: jquery select hover unselect


    【解决方案1】:

    【讨论】:

    • 哦,这比我更容易,谢谢!我不知道如何寻找,我尝试了各种“jquery unselect”搜索组合但没有成功。谢谢! +1,我会稍等片刻接受。
    • 不适用于 ubuntu 上的 Chrome(版本 31.0.1650.63)(Firefox 可以)。修复是先 $(this).focus(),然后 $(this).blur()
    【解决方案2】:

    在这种情况下,blur() 只是从输入文本中取消焦点,虽然它给出了文本不再被选中的外观,但它仍然被选中。要真正取消选择任何文本,您可以:

    $(".hoverAble").mouseenter(function() {
        this.select();
    }).mouseleave(function() {
        $(this).prop('selectionStart', 0).prop('selectionEnd',0).blur();
    });
    

    【讨论】:

      【解决方案3】:

      如果您使用的是 jQuery,请尝试使用 blur()。

      $(this).blur();
      

      【讨论】:

      • 在 Firefox 上工作。对于 ubuntu 上的 Chrome(版本 31.0.1650.63),我必须在 blur() 之前使用 $(this).focus()。
      【解决方案4】:

      这行得通:

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

      【讨论】:

        【解决方案5】:
        input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});
        

        【讨论】:

          【解决方案6】:

          如果您使用 jQuery,您可以尝试使用众多插件之一来根据您的需要取消选择或设置插入符号位置,例如this one。如果你不这样做,由于开源许可证,你仍然可以使用这些插件的纯 JavaScript

          【讨论】:

            猜你喜欢
            • 2014-04-23
            • 2018-11-24
            • 1970-01-01
            • 2018-05-18
            • 2018-07-16
            • 1970-01-01
            • 2020-10-24
            • 1970-01-01
            • 2010-10-22
            相关资源
            最近更新 更多