在表格中回车键到下一个单元格的问题

提问 未结 4 245
ftong
ftong 2019-2-11
悬赏:80飞吻
参照社区的代码,单元格监听。
但有一个问题:每次刷新页面后,第一次按回车键不能跳转到下一个单元格,按第2次跳转,接着继续按1次回车键正常跳转到下一个。
代码如下:

table.on('edit(grid)', function(obj){
$(document).on('keydown', '.layui-input', function (e) {
if (e.keyCode==13) {
var $el = $(e.target);
var $td = $el.parents('td');
$td.next().trigger('click');
}
});
});
回帖
  • 你是在edit的时候再做了一个监听,实际这个时机不对,你实际在edit监听中是要触发监听,而不是加监听。
    把事件委托拿到外面去做,但是实际也不需要再edit里面做什么,因为你是监听回车然后跳到下一个td,外面的那个事件委托已经处理了,关键的一个是委托的选择器要尽量明确一点,不要范围太广,.layui-input这个影响太多了,把各种不适表格内部的需要有这个监听的元素也就监听到了
    1 回复
  • ftong
    2019-2-11
    补充:
    td内 是input,即edit: 'text'
    trigger('click')效果很不好,滞后。尤其在IE下,能不能改.focus()。就像在form下那样。但本人水平有限,弄了很长时间没搞出来。
    0 回复
  • ftong
    2019-2-12
    @岁月小偷 滞后就是在IE下,按下回车键不会立即跳到下一个input,要等一小会儿,有时候就没反应。在360浏览器下,响应快一些
    0 回复
  • ftong
    2019-2-12
    @岁月小偷 难道就没有更好的办法?在form内可以轻松实现
    0 回复