【问题标题】:Jquery .select() doesnt work property on focus event [duplicate]Jquery .select()在焦点事件上不起作用[重复]
【发布时间】:2013-06-28 14:31:58
【问题描述】:

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

<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。您会看到,每次尝试都会选择文本。我不知道为什么。

附: 当您将 focus 更改为 click 时,它可以完美运行:

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

所以我想focus 事件有问题。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    WebKit 浏览器似乎因为 mouseup 事件而干扰了这一点。

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

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

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

    【讨论】:

    • @billyonecan 所以你是说因为别人写的,这意味着我不能得出同样的结论?
    • 不,更多的是因为它一字不差
    • @billyonecan umm .. 我检查过但没有。让你的事实直截了当。
    【解决方案2】:

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

    【讨论】:

    • 我知道click 活动,但感谢this.select()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多