Jquery 用.select()取消选择在输入中选择的内容

Jquery 用.select()取消选择在输入中选择的内容,jquery,select,hover,unselect,Jquery,Select,Hover,Unselect,使用后。选择可在将光标悬停在输入框中时选择文本。我执行了以下操作: HTML: 看。 警告:要使它在JSFIDLE中正常工作,您必须在结果框中单击一次 主要的想法是mouseleave也在工作 正如您可能已经注意到的,我无法找到在您悬停时取消选择文本的方法并避免出现以下情况: 使用 如果您使用的是jQuery,请尝试使用blur $(this).blur(); 这项工作: $(".hoverAble").hover(function() { $(this).select();

使用后。选择可在将光标悬停在输入框中时选择文本。我执行了以下操作:

HTML:

看。 警告:要使它在JSFIDLE中正常工作,您必须在结果框中单击一次

主要的想法是mouseleave也在工作

正如您可能已经注意到的,我无法找到在您悬停时取消选择文本的方法并避免出现以下情况:

使用


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

$(this).blur();
这项工作:

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

});
应该有更好的办法来解决这个问题


编辑:当然有模糊。

如果您使用jQuery,您可以尝试许多插件中的一个,根据您的需要取消选择或设置插入符号位置,例如。如果您不这样做,您仍然可以使用这些插件的纯JavaScript,因为有开源许可证。在这种情况下,只模糊输入文本的非焦点,虽然它给出了文本不再被选中的外观,但仍然被选中。要真正取消选择任何文本,请执行以下操作:

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

哦,那比我想的容易多了,谢谢你!我不知道如何查找,我尝试了各种jquery unselect搜索组合,但都没有成功。谢谢大家!+1,我将稍等片刻接受。在ubuntu Firefox works上的Chrome 31.0.1650.63版不起作用。修复方法是先$this.focus,然后在Firefox上使用$this.focus。对于ubuntu上的Chrome 31.0.1650.63版,我必须在模糊之前支付$this.focus。
$(".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();

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