.select()在Chrome中无法正常运行

时间:2014-05-01 11:50:02

标签: javascript jquery html google-chrome

我会保持简短和甜蜜。试图在jQuery中实现.select,它似乎没有在Chrome中合作。单击输入仅短暂选择内容。

$(document).on('focus','.a-thing', function () {
    this.select();
});

jsFiddle

5 个答案:

答案 0 :(得分:2)

可能是由于使用了焦点事件。 焦点完成后,尝试触发选择事件

$(document).on('focus','.a-thing', function () {
    var self = this;
    setTimeout(function() {
        self.select();    
    },1);
});

Updated jsFiddle

答案 1 :(得分:2)

this不是jQuery对象

$(document).on({
    focus : function () {
        $(this).select();
    },
    mouseup : function() {
        return false;
    }    
}, '.a-thing');

FIDDLE

您必须阻止mouseup事件以避免丢失选择,因为mouseup事件取消选择文本,这是Chrome中的已知问题。

答案 2 :(得分:1)

用户click事件而不是foucs,因为键盘标签键会自动选择不带foucs事件的字段值

$(document).on('click','.a-thing', function () {
    this.select();
});

JSFIDDLE DEMO

答案 3 :(得分:0)

您可以激活鼠标选择而不是焦点。 Chrome似乎在鼠标注册事件中取消选择。

$(document).on('mouseup','.a-thing', function () {
   $(this).select();
}); 

或者,如果您想保留焦点事件,可以阻止对鼠标操作

$(document).on('mouseup','.a-thing', function () {
  e.preventDefault();
}); 

答案 4 :(得分:0)

在mouseup事件中,选择未被选中,请添加以下内容以解决问题

$(".a-thing").mouseup(function(e){
    e.preventDefault();
});

<强> DEMO