Javascript 在动态清除表行并向其添加新行集后,Keydown事件在IE和Chrome中不起作用!!!(它在Firefox中工作)
我正在尝试通过箭头键在数组中实现导航。我得到的是通过以下代码工作Javascript 在动态清除表行并向其添加新行集后,Keydown事件在IE和Chrome中不起作用!!!(它在Firefox中工作),javascript,google-chrome,callback,keydown,dynamically-generated,Javascript,Google Chrome,Callback,Keydown,Dynamically Generated,我正在尝试通过箭头键在数组中实现导航。我得到的是通过以下代码工作 "onLoad": function () { $('#tbl tbody').attr("tabindex", 1); $('#tbl tbody').keydown(function (event) { // Code for navigation to next or previous in table }); }, 向下键事件在页面加载时运行
"onLoad": function () {
$('#tbl tbody').attr("tabindex", 1);
$('#tbl tbody').keydown(function (event) {
// Code for navigation to next or previous in table
});
},
向下键事件在页面加载时运行良好,只需单击表一次,即可通过箭头键导航。
但在动态清除表并向其中添加新行集之后,我面临着这个问题。在表的末尾,我需要回调服务器,该服务器正在清除表中的行并向is添加新行集。现在,在该按键关闭事件之后,该事件不起作用。我需要再次单击表来导航。
注意:这只发生在IE和Crome上。在firefox上,它运行良好,我能够在新的数据集或行上导航 使用jQuery的
live
函数绑定它
$('#tbl tbody').live('keydown', function(e) {});
这也将回调应用于在运行时创建的元素
正如jerome.s.所建议的那样,现在对我有效了 现在我要做的是,在Ajax调用完成时设置焦点,它的回调函数也完成了重新呈现表的工作。当渲染部分完成时,我已将焦点设置为表体
$('#tbl body').focus();
谢谢你的回复。@Austine Brunkhorst:不,它不会对我做任何改变。它仍然给我旧的行为。我可以得到一组新的行,但我需要单击表来开始导航。@Austine Brunkhorst:Keydown在我单击表后工作正常。但我不想这样,我想在服务器回调完成后保留表体焦点,以便keydown也能处理新的行集。在服务器回调后从表体失去焦点有什么问题吗??若它是那个么如何验证和修复它。在我点击表格后,Keydown工作正常。但我不想这样做,我想在服务器回调完成后保留表体焦点,这样keydown也可以处理新的行集。重新创建表后,您可以重置焦点吗?也许是这样:$('yourtable').focus()@杰罗姆:不,我也试过了。我尝试了
$('tbl body')。focus()$(#tbl body')。触发器('click')代码>在java脚本中模拟表体上的触发器。但这也不是我想要的工作。@jerome.s:正如你所说,现在工作了。以前我在错误的地方这么做。现在,我在表的Ajax回调函数中设置焦点。