1

问题:
我有很多下拉菜单,动态变化一直在进行。问题是我必须使用 blur() 方法来禁用焦点,以便可以应用取决于所选值的类。

有没有办法可以将焦点设置到下一个下拉元素上。

尝试过:
我尝试过而不是 blur(),但它没有用。

this.next(".Element").focus();

当前代码:

$('.Element').change(function () {
            var colour = $(this).find('option:selected').attr('class');
            $(this).removeClass().addClass(colour);
            this.blur();
        }).change

JS Fiddle:
我的代码的 jsfiddle

4

2 回答 2

2

尝试使thisjQuery 对象聚焦另一个元素

$(this).next(".keyTechElement").focus();

编辑 1: 看到您的 DOM,需要进行更改。该.next()函数在 DOM 中选择兄弟姐妹,并且内部<td>没有.Element兄弟姐妹。

$(this).blur();
$(this).closest('td').next("td").find(".Element").focus();

http://jsfiddle.net/UXJZ7/2/

于 2013-06-12T14:01:18.827 回答
1

我认为使用 focus() 或 blur() 操作焦点对于键盘用户来说是可怕的。

用户还讨厌他们很少使用的表单上的自动选项卡。

Onchange 并不意味着已做出选择,用户可能正在使用键盘(或使用模拟键盘的辅助技术,如语音识别软件)逐步浏览选项,您在选择的每一步都会收到 onchange 事件。

你可以非常详细地解决这个问题,但这很少值得付出努力。

对于您的示例,我将保留如下内容:http: //jsfiddle.net/KWvMZ/ 看起来您的样式中具有焦点状态的唯一原因是以足够的对比度显示文本,所以我只是设置黄色背景在聚焦时具有黑色文本并像这样离开它。

.
于 2013-06-13T08:47:36.017 回答