我找到了 this question在 Stack Overflow 上,并使用了最佳答案中给出的代码。
除此之外它的效果非常好,但是有一个问题;在我的页面上,我有多个文本区域。事实上,我使用的选择器只是 "textarea"
。
但是,当从一个文本区域“跳转”到另一个文本区域(使用 Tab 键跳转到下一个文本区域)时,焦点事件显然不会触发,文本也不会被选中。
我如何修改该代码以同时通过点击和 Tab 键工作?
JSFiddle 在这里; http://jsfiddle.net/qQDbZ/我在 Chrome 上,虽然点击文本区域会全选,但 Tab 键不会。
最佳答案
我能够通过以下解决方法解决此问题:
$('textarea').focus(function() {
var $this = $(this);
$this.select().mouseup(function() {
$this.off('mouseup');
return false;
});
}).keyup(function(e) {
if(e.which === 9) {
this.select();
}
});
演示:http://jsfiddle.net/KfFPM/3/
我在 Chrome 21、Safari 6、Firefox 14、Opera 12 和 IE 9 中测试了以上内容。稍后我会测试更多版本;我现在很高兴。在 Tab 键向前和 shift+Tab 键向后时起作用。
绑定(bind)到 keydown
无效。
我仍然认为这种解决方法应该是不必要的。我最好的猜测是 webkit 浏览器将选项卡检测为文本区域内的按键,因此取消选择文本,如果您在文本区域中选择了一些文本然后开始输入,任何浏览器都会这样做。
关于javascript - tab 时选择 textarea 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402067/