2011-05-02 85 views
7

后,我用.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也。

正如你可能已经注意到,我不能想出一个办法来取消选择文本,当你将鼠标悬停出来,避免这种情况:

enter image description here

回答

8
+3

+1击败我吧! – mellamokb 2011-05-02 19:10:09

+0

虽然我觉得这很容易,谢谢!我不知道如何寻找,我尝试了各种“jquery unselect”搜索组合,但都没有成功。谢谢! +1,我会等一会儿接受。 – Trufa 2011-05-02 19:13:16

+1

在Ubuntu(Firefox作品)上的Chrome(版本31.0.1650.63)上不起作用。修正是先$(this).focus(),然后$(this).blur() – 2014-01-13 06:02:32

2

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

$(this).blur(); 
+0

在Firefox上工作。对于Ubuntu上的Chrome(版本31.0.1650.63),我必须在blur()之前$(this).focus()。 – 2014-01-13 06:03:48

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()

1
input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});