2017-01-03 239 views
-1

我正在嘗試在焦點位於<li>子元素上時突出顯示父項<ul>。我使用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/

更新:

我意識到,問題出在「上行」和「禮」的關係,我也相應更新。

+1

你可以做一個搗鼓這個,好嗎?順便說一句你的代碼不太清楚。 – Troyer

+0

如果查看輔助功能,請查看[aria-posinset](https://www.w3.org/TR/wai-aria-1.1/#aria-posinset)和[aria-setsize](https:// www。 w3.org/TR/wai-aria-1.1/#aria-setsize) – thekodester

+0

@ kodecount我已經添加了代碼,但它是從asp.net部分生成的,並且我對有限功能的訪問權限有限。 – Joshua

回答

2

您可以從另一個輸入的焦點或點擊給定div來觸發焦點。這是必需的jQuery代碼。 Se完整的例子。

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

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

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

+0

@Kristfral非常感謝,這解決了我的問題。 – Joshua

0

你們是不是要關注的列表元素(LI)。我相信你可以集中HTML選擇,textarea,輸入,按鈕和一個標籤。您可以嘗試通過將tabindex屬性添加到要添加的元素來強制關注焦點。您仍然可以通過觸發焦點處理程序而不是事件來使用jquery做一些技巧。

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

Fiddle

+0

澄清,我試圖做的是添加焦點到父元素,當內部孩子的目標。我可以定位選項卡焦點元素「subTabAction」並獲得焦點,我希望在聚焦時爲該元素添加一個視覺指示器。 – Joshua