我想将焦点设置到我的文本区域。以下是我的代码:
$this.textInput.val('').show().focus();
但它不起作用。实际上,当我按下鼠标按钮时,它会出现,但是当我将鼠标按下时,它会从文本区域移除。经过大量的搜索,我发现了setTimout方法,如:
$this.textInput.mouseover(function(){
setTimeout($this.focus(),0);
});
但它还没有在firefox中运行。我有最新的13.0版本,但它仍然包含问题,但谷歌铬它正常工作。 firefox有什么问题可以解决它。
提前致谢。
答案 0 :(得分:5)
使用.trigger('focus')
。我发现它有时比.focus()
更好。
答案 1 :(得分:2)
试试这个:
$('#textareaid').click(function(){
$(this).after('focused?');
el = $(this);
setTimeout(function(){
el.trigger('focus')
},1);
})
使用.click方法。我会为你工作。
答案 2 :(得分:0)
$ this 并不意味着什么。您应该使用 $(this),或者您可以设置这样的变量 -
var $this=$(this)
答案 3 :(得分:0)
并非所有元素都是可聚焦的,但默认情况下,有一个tabindex属性可以解决这个问题。
将tabindex=<number>
分配给元素时:
它变得可以专注。
用户可以使用Tab键从具有较小正tabindex的元素移动到下一个元素。异常是一个特殊值tabindex="0"
意味着该元素将始终是最后一个。
tabindex=-1
表示元素变为可聚焦,但tab键将始终跳过它。只有focus()
方法才有效