2013-07-01 75 views
1

标识不工作性质要选择上重点从输入的所有文本: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. 当您更改focusclick它完美的作品:

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

,所以我想有一些问题focus事件。

回答

1

由于mouseup事件,似乎WebKit浏览器会干扰此操作。

我说这个,它似乎很好地工作:

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

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

+0

[抄袭](http://stackoverflow.com/questions/480735/select-all-contents-of-textbox-when-it简化代码-receives对焦的JavaScript或 - jQuery的)! – billyonecan

+0

@billyonecan所以你说的是因为别人写的,这意味着我不能得出相同的结论吗? –

+0

不,更多的是因为它是相同的字 – billyonecan

1

你可以使用click事件,而不是focus。它工作正常,也可以通过使用this.select()代替$(this).select() http://jsfiddle.net/daxv2/8/

+0

我知道'click'事件,但感谢'this.select()'! – Kasyx