Jquery .select()在焦点事件上不起作用

时间:2013-07-01 12:55:33

标签: javascript jquery

我想在聚焦时从输入中选择所有文字:

<input id="selectMe" value="123" />
<input type="button" id="focusHim" value="Im working fine" />

JS:

$('#selectMe').focus( function() {
    $(this).select();
    console.log('focus fired');
});

// little test if focus event works fine
$('#focusHim').click( function() {
    $('#selectMe').focus();
});

此简化代码工作正常,但有时会出现一些问题。

这里有小提琴:http://jsfiddle.net/daxv2/

要查看我的问题,请点击输入#selectMe,然后点击其他地方并再次点击#selectMe。您将看到,每次尝试都会选择文本。我不知道为什么。

P.S。 当您将focus更改为click时,它可以完美运行:

$('#selectMe').click( function() {
        $(this).select();
        console.log('focus fired');
    });

所以我认为focus事件存在一些问题。

2 个答案:

答案 0 :(得分:1)

由于mouseup事件,似乎WebKit浏览器会干扰这一点。

我添加了这个,似乎工作正常:

$('#selectMe').mouseup(function () {
    return false;
});

http://jsfiddle.net/daxv2/6/

答案 1 :(得分:1)

您可以使用click事件代替focus。它运行正常,您也可以使用this.select()代替$(this).select()来简化代码 http://jsfiddle.net/daxv2/8/