我在我的一个网站上有一个可用性问题。我有一组选项卡,每个都包含一个表单。当您单击标签链接时,它会将焦点放在标签内容正文中的第一个文本框。面向鼠标的人喜欢这个“功能”。问题在于面向键盘的用户使用键盘上的TAB键通过选项卡。他们在他们想要查看的标签上点击输入,点击事件触发并且标签显示,但焦点被赋予文本框,完全调整它们的标签顺序。因此,当他们再次点击标签时,他们想要转到屏幕上的下一个标签,但由于焦点已移到表单内,因此无法使用键盘轻松进入下一个标签。jQuery点击事件 - 如何判断鼠标是否被点击或输入密钥被按下?
因此,在点击事件中,我需要确定它们是否实际上用鼠标按钮点击了它。这可能吗?我第一次尝试是这样的:
$("#tabs li a").click(function(e) {
var tab = $(this.href);
if(e.keyCode != 13)
$("input:first", tab).focus();
});
但keyCode
始终为0。which
属性也始终为0。请帮帮忙!
您可以通过在文本框中添加一个.focus()处理程序并添加一点逻辑来破解它。 – krasnerocalypse
@krasnericalypse错误,不是真的。一旦将焦点放在文本框/下拉框中,恢复就太迟了。 –
哈哈。这是困难的一个。 – krasnerocalypse