Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript焦点并选择不在FF中工作_Javascript_Jquery_Select_Focus - Fatal编程技术网

Javascript焦点并选择不在FF中工作

Javascript焦点并选择不在FF中工作,javascript,jquery,select,focus,Javascript,Jquery,Select,Focus,使用jQuery,以下内容在FF中不起作用,但在IE中起作用 $(this).focus().select(); 我环顾四周,发现你可以用一个超时来解决这个问题,但如果我能避免的话,我不想这么做。是否有人知道另一种方法来实现这一点,并让它在FF中工作 大都会我以前也遇到过这种情况。我相信setTimeout()解决方案是Firefox中唯一可行的方法。如果我没记错的话,这个问题与事件处理的顺序有关:IE在调用focus()方法时会立即更改控制焦点,但Firefox通过向事件队列添加一个焦点事件

使用jQuery,以下内容在FF中不起作用,但在IE中起作用

$(this).focus().select();
我环顾四周,发现你可以用一个超时来解决这个问题,但如果我能避免的话,我不想这么做。是否有人知道另一种方法来实现这一点,并让它在FF中工作


大都会

我以前也遇到过这种情况。我相信setTimeout()解决方案是Firefox中唯一可行的方法。如果我没记错的话,这个问题与事件处理的顺序有关:IE在调用focus()方法时会立即更改控制焦点,但Firefox通过向事件队列添加一个焦点事件来处理它,直到当前事件处理完成后才会解决。setTimeout()技巧之所以有效,是因为它会在焦点更改事件之后将代码的其余部分添加到事件队列的另一个事件中,从而在代码继续处理之前将其解析。

$('input').focus().select();


而且它在firefox中工作。也许我不明白你的问题到底是什么。

请尝试此代码

setTimeout(function() 
 {
   $(Selecter).focus(); 
 }, 0);

我刚刚找到的解决方案是使用以下代码

[elementHere].setSelectionRange(0, [elementHere].value.length);

根据,这会选择文本,但不会聚焦文本。至少对我来说,这避免了在焦点事件处理程序中选择文本的问题,因为选择文本不会导致包含文本的元素再次被聚焦。

FireFox应该修复这个lol。我希望它在任何地方都能工作,或者什么地方都没有……非常烦人。快到2017年了,Firefox中的这种行为仍然存在。你在使用Linux还是Windows?什么版本的FF?
[elementHere].setSelectionRange(0, [elementHere].value.length);