使用backbone.js时,键盘选项卡导航失效
Keyboard TAB navigating broken when using backbone.js
TAB导航中断,因为渲染取代了DOM元素。
主干渲染方法被设计成与整个视图的标记一起工作,而不仅仅是改变的东西…
给定以下内容我在html标签上正确设置了tabindex以指定制表符顺序。-我通过使用键盘上的TAB键从一个字段导航到另一个字段。-当模型状态发生变化时,我绑定到change change事件调用render:-this.model。绑定(‘改变’,this.render);-我在字段和tab中更改了一些内容(这会触发模型更改事件)
有没有人在没有显式代码检查所有更改的属性,并且没有替换主干(因为这不是当前项目的选项)的情况下解决这个问题?
的例子:
启动TODO应用程序创建2个TODO, tab到第一个TODO,按空格标记完成。然后尝试tab到下一个字段,而不是去下一个TODO你回到什么需要做的输入:(
这是我最终的解决方案:-
它为所有没有id的元素添加一个生成的id,这些id对于处于相同状态的模型是相同的。
render: function(x) {
var html = this.options.template(this.model.toJSON());
var focused = window.document.activeElement.id; //Get the focused element
this.el.innerHTML = html;
this.decorate();
if (focused) $('#' + focused).focus(); //Focus if previously focused prior to innerHTML
return this;
},
decorate: function() {
var i = 0;
var idPrefix = 'ENTER PREFIX HERE'
this.$el.find('*').each(function() {
if (!this.id) this.id = idPrefix + ((++i).toString(36)); //Add id if none exists
});
}
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- 如何将导航菜单链接到jQuery选项卡
- 如何在angular bootstrap ui中聚焦活动导航选项卡中的拳头输入字段
- 如何将数组附加到下拉导航栏并禁用其中的一个选项
- 使用选项卡导航到不同的html文件(html、JavaScript)
- IE7在带有Javascript选项卡导航的页面上误读CSS
- 当用户在选择框中选择选项时,使用window.location.href重定向用户只会更改导航器中URL的最后一位
- 引导导航选项卡未突出显示活动选项卡
- 使用 Javascript 在导航栏中显示当前选项卡
- 如何在不包含导航选项卡内容、页脚和头部的情况下打印 HTML/PHP 页面
- 引导导航选项卡在小提琴中工作,但在使用 Chrome 打开时则不工作
- 测试选项卡导航顺序
- 引导选项卡导航不起作用
- 选项卡导航和滚动
- 从一个页面导航到另一个页面的选项
- Boostrap 3,多导航控制单个选项卡窗格
- 需要jquery&litte-html-css改进猫头鹰幻灯片与选项卡导航(分页)
- 用户配置文件的选项卡导航
- AngularJS Bootstrap Tabset 选项卡在 IE8 中不起作用的选项卡之间的选项卡导航
- 我的导航选项卡正在删除元素