将焦点添加到焦点子元素上的父元素

时间:2017-01-03 15:54:50

标签: javascript jquery html css

我正在尝试在焦点位于<ul>子元素时突出显示父<li>。我正在使用jQuery来实现这一点,但焦点不会转移。

HTML:

 ul class="nav @if (Request.Browser.IsMobileDevice){@Html.Raw("nav-pills")}else{@Html.Raw("nav-pills")}">
            <li class="dropdown" style="cursor:pointer" id="accessFunction">
   <a style="color: lightgray; text-shadow: 1px 1px 1px #111; webkit-text-shadow: 1px 1px 1px #111;font-size:18px;background-color:transparent;padding-right:5px" class="dropdown-toggle subTabAction" data-toggle="dropdown" id="dropAccess" >

jQuery的:

$('#dropAccess').focus()
$(this).find('#accessFunction').focus();

这样做是为了容纳仅需要视觉问题的键盘用户,以找到由<li>标记触发的可访问下拉菜单。

小提琴: https://jsfiddle.net/progSrCa/d3au7k9c/

更新:

我意识到问题在于'ul'和'li'的关系,我已经相应地更新了。

2 个答案:

答案 0 :(得分:2)

您可以从另一个输入的焦点或点击给定的div触发焦点。这是必需的jQuery代码。小提琴完整的例子。

$( "#otherInput" ).focus(function() {
  $( "#target" ).focus();
});

$( "#plainDiv" ).click(function() {
  $( "#target" ).focus();
});

小提琴:https://jsfiddle.net/q0m4hff9/

答案 1 :(得分:0)

您是否正在尝试关注列表元素(li)。我相信你可以专注于HTML Select,textarea,input,button和tags。您可以尝试通过将tabindex属性添加到要添加的元素来强制关注焦点。你仍然可以通过触发焦点处理程序而不是事件来使用jquery做一些技巧。

$('#accessFunction').triggerHandler( "focus" );

Fiddle