jQuery .focus() 无法使用 ng-repeat (AngularJS) 处理动态生成的列表项
jQuery .focus() not working with a dynamically generated list item using ng-repeat (AngularJS)
我正在使网站可通过键盘访问,并且我正在尝试使下拉菜单键盘可访问。带有 id= list-0 的元素是我试图关注的。
该 HTML 是:
<dl class="office-type-dropdown">
<dt tabindex=0 href="#" id='emerald-button' role="button" aria-haspopup="true" ng-keydown="b_onKeyDown($event)">
<a href="javascript:void(0);">
<p class="multiSel">
<span ng-repeat="obj in selectedItems">{{obj}}</span>
</p>
</a>
</dt>
<dd>
<div class="mutliSelect">
<ul role="menu" id="office-select-menu">
<li ng-repeat="obj in officeTypes" id="list-{{$index}}" aria-posinset="{{$index+1}}" ng-keydown="m_onKeyDown($event)">
<label for="checkbox-{{index}}">
<input tabindex="-1" role="menuitem" id="checkbox-{{$index}}" type="checkbox" class="{{obj.class}}" ng-change='onCompleteFilter(obj)' ng-model="obj.checked">
{{obj.text}}
</label>
</li>
</ul>
</div>
</dd>
</dl>
我试图使列表项成为焦点的 jQuery 是:
$scope.b_onKeyDown = function ($event) {
var key = event.which;
if(key == 13){
$('#office-select-menu').toggle();
setTimeout(function(){
$('#emerald-button').blur();
$('#list-0').attr("autofocus","autofocus");
$('#list-0').focus();
}, 100);
}
}
在搜索其他问题后,我添加了 SetTimeOut 和自动对焦,但它们也不起作用。然而,焦点是转到html标签,当我做document.activeElement.innerHTML时,它会吐出整个HTML。
任何建议都会很棒。谢谢
jquery ID 中不能包含"-",除非你转义它。
http://api.jquery.com/category/selectors/
相关文章:
- 如何在javascript而不是jquery中添加动态列表
- android phonegap jquery点击动态列表中的元素
- JSP中的动态列表框
- 使用PhoneGap和jQuery Mobile在android设备上显示动态列表视图
- JQuery Mobile UL列表仍然不能用于动态列表
- 将项目添加到动态列表
- 谷歌应用程序脚本web应用程序动态列表从表单
- 在动态列表中单击的特定img上执行JQuery
- 在jquery中滚动动态列表视图
- 无法更新复选框的动态列表
- 我无法将变量从动态列表传递到php页面进行处理.这是我不理解的逻辑问题吗
- 在 asp.net c# 中通过 POST 传递动态列表
- 将元素附加到动态列表,但浏览器不会刷新 UI
- 不使用排序数组的动态列表排序
- 基于 Javascript/jQuery 的带缩进的动态列表
- 带有动态列表的离子标签
- Jquery Mobile 中的动态列表视图和按钮
- 更改动态列表项的 CSS
- 无法使用JSON响应通过JQuery Mobile生成动态列表视图
- 使用AJAX和javascript将动态列表模型发布回控制器