4

我想将焦点设置到我的文本区域。以下是我的代码:

$this.textInput.val('').show().focus();

但它不起作用。实际上,当我按下鼠标按钮时,它出现了,但是当我鼠标向上时,它从文本区域中删除。所以经过大量搜索后,我发现了 setTimout 方法,例如:

$this.textInput.mouseover(function(){                                
setTimeout($this.focus(),0);
});

但它仍然不能在Firefox中工作。我有最新的 13.0 版本,但它仍然包含问题,但谷歌浏览器工作正常。firefox有什么问题,有什么解决办法。

提前致谢。

4

4 回答 4

5

使用.trigger('focus'). 我发现它有时比.focus().

于 2012-06-08T10:04:20.857 回答
2

试试这个 :

$('#textareaid').click(function(){
                $(this).after('focused?');
                el = $(this);
                setTimeout(function(){
                    el.trigger('focus')
                },1);
            })

使用 .click 方法。我会为你工作。

于 2012-06-08T11:50:27.223 回答
0

$this没有任何意义。你应该使用$(this)或者你可以设置一个像这样的变量 -

var $this=$(this)
于 2012-06-08T10:10:13.710 回答
0

并非所有元素都是可聚焦的,但默认情况下,有一个 tabindex 属性可以解决这个问题。

当您分配tabindex=<number>给一个元素时:

它变得可聚焦。

用户可以使用 tab 键从具有较小正 tabindex 的元素移动到下一个元素。例外是一个特殊值tabindex="0",意味着该元素将始终位于最后。这tabindex=-1意味着一个元素变得可聚焦,但 tab 键总是会跳过它。只有focus()方法有效

于 2013-06-25T10:17:17.650 回答