У меня есть элемент меню asp в качестве пунктов меню, которые я пытаюсь добавить новый атрибут tabindex = "0", чтобы сосредоточиться на пунктах меню с помощью навигации по клавиатуре.
<Site:DynamicMenu ID="DynamicID" runat="server"/> //this is from Master page
<asp:Menu ID="IDHere" runat="server" Orientation="Horizontal"></asp:Menu> // this is from Menu rendering page
Я добавил новый класс и добавил свойство Tabindex (чтобы каждый раз фокусироваться) к элементу управления, чтобы связать событие клавиатуры, которое может использоваться пользователями ADA. Я смог добавить role = "button" через jQuery, который остался на контроле в браузере. Но свойство Tabindex никогда не остается на месте. При дальнейшей отладке я заметил, что у этого элемента управления есть свойство tabindex как «-1», сгенерированное из кода на стороне сервера, который заменяет новый tabindex = «0», который я добавил к вышеуказанному элементу управления asp. Скрипт серверной части не в моём контроле (по крайней мере, я так думаю?). Есть ли другие варианты, которые я могу сделать перезаписать tabindex = "0" для моего меню, чтобы оно получило фокус?
Вот что я добавил в элемент управления:
<asp:Menu ID="IDHere" runat="server" Orientation="Horizontal" cssClass="keyboardFn" Tabindex="0"></asp:Menu>
Скрипт (который добавляет атрибут к сгенерированному тегу:
$("#IDHere").attr("role", "button"); //appending the attribute
$('.keyboardFn').keydown( function (e) {
//doing the thing here
}
Тег, который отображается в браузере, находится ниже:
<a class="menu1" href="#" onclick="__doPostBack('ctl00$DynamicID$IDHere','1')" tabindex="-1" role="button">Menu Name1</a>
Если вы заметили, role = "button" остается на месте, но tabindex продолжает заменять из-за сценария ниже из кода, сгенерированного сервером веб-ресурсов:
.....
menuItem.hover(false);
menuItem.blur();
......
.......
blur: function() { this.setTabIndex(-1); } // this is what I think is replacing the tabindex that I'm trying to set.
Есть ли способ перезаписать это свойство, чтобы сохранить новое значение на основе условий для моей страницы? Я просмотрел потрясающе и не смог.
Я нашел следующий пост, но в моем случае он не работает. Любая помощь приветствуется!
Установка атрибутов кнопки ASP.NET на стороне клиента и чтение значения атрибута на стороне сервера