打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
选取div标签中第一个可以获取到焦点的元素
遇到一个问题,如题,在页面的左上角,有两个超链接标签a,b,功能是这样的,按tab键,当超链接a获取到焦点之后,按下回车键,导航栏的第一个可以获取到焦点的元素得到焦点,当超链接b获取到焦点之后,按下回车键,内容部分的第一个可以获取到焦点的元素得到焦点。导航栏在一个div里面,id="navigation",内容部分在一个div里面,id="content".

为了实现这个功能,最开始想到的是查抄div内的<a href></a>这种标签元素,让找到的第一个a标签元素获取到焦点,如果没有a标签元素,则再查找input元素,让找到的第一个input元素获取到焦点,把这个方法写到模板页里面。这个方法对于导航栏是没有啥问题的,因为导航栏中差不多都是a标签,但是子页面就有问题了,子页面content部分,第一个可以获取到焦点的元素各种各样,不确定。比如一个页面中,第一个a标签在页面的中间出现,前面是一堆Input元素,时候,按下回车键,页面中间的那个a标签就获取到了焦点,这是不对的。后来想到了遍历div内部的所有元素,然后,找到可以获取到焦点的第一个元素,让这个元素得到焦点。这里有个问题,可以获取到焦点的元素有什么特点?不知道,网上搜了一下,大概有Input ,checkbox,button, a标签等几种,如果某个元素上面有tabindex=0这种属性,也可以获取到焦点。

后来翻看jquery的选择器大全:http://www.cnblogs.com/hulang/archive/2011/01/12/1933771.html

有这么一个东西

$(":enabled")             选择所有的可操作的表单元素 

试了下,问题解决,IE9, Chrome,firefox都是好使的。问题解决。


    window.msf.focusContent = function () {
        if ($("#content :enabled")[0] != null) {
            $("#content :enabled")[0].focus();
        }
    }
    window.msf.focusNavigation = function () {
        if ($("#navigation :enabled")[0] != null) {
            $("#navigation :enabled")[0].focus();
        }
    }

用data-bind进行绑定click事件,然后a标签的href="javascript:void(0)".
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
网页布局——注册页面的居中对齐
前端知识之HTLM内容
让HTML标签、DIV、SPAN拥有onfocus和onblur,聚焦和失焦
bootstrap4 自定义复选框
form表单字段元素对象(三)— —按回车键,焦点移到下一个文本输入框
Selenium webdriver 元素定位方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服