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

Jquery .select() doesnt work property on focus event

本文关键字:事件 不起作用 焦点 select Jquery      更新时间:2023-09-26

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

<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事件存在一些问题。

WebKit浏览器似乎因为mouseup事件而对此进行了干扰。

我添加了这个,它似乎工作得很好:

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

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

您可以使用click事件而不是focus。它工作得很好,还可以使用this.select()而不是$(this).select()来简化代码http://jsfiddle.net/daxv2/8/