Unselect text on focus

HTML

<input type="text" value="abc" /><br />
<input type="text" value="def" /><br />
<input type="text" value="xyx" />

JavaScript

function setCaretPos(element, begin, end) {
    if (element.setSelectionRange) {
        element.setSelectionRange(begin, end);
    } else if (element.createTextRange) {
        var range = element.createTextRange();
        range.collapse(true);
        range.moveEnd('character', end);
        range.moveStart('character', begin);
        range.select();
    }
}

$('input').focus(function() {
    var $input = $(this);
    setTimeout(function() {
        setCaretPos($input[0], 4, 4);
    }, 0)
});