table数据表格如何实现回车触发下一个单元格?

提问 已结
4 330
Sniper_web
Sniper_web 2018-8-14
悬赏:20飞吻
版本:layui 2.3.0 浏览器:chrome
需求:目前数据表格内部添加了日期选择与select模板,想实现回车一次触发没有单元格事件,如果有可编辑则显示编辑框,时间选择就弹出时间选择框。
问题:
 $(document).one('keydown','td',function (e) {
if (e.keyCode === 13) {
var $el = $(e.target);
var $td = $el.parents('td');
var $nextTd = $td.next('td');

if($nextTd.length) {
$nextTd.trigger('click');
}
}
})
目前该方法一直无法触发除了edit以外的操作。
回帖
  • 这就得找到里面是什么内容,如果是普通的td编辑,click一下td就可以,但是如果是select点击这个td是没用的需要点击到form生成出来的那个看着是下拉的东西,laydate也是,需要click对dom才能触发。只是click td是没用的。
    0 回复
  • ftong
    2019-2-11
    @岁月小偷 td内都是input,即edit: 'text'

    trigger('click')效果很不好,滞后。尤其在IE下,能不能改.focus()。就像在form下那样。但本人水平有限,弄了很长时间没搞出来。
    0 回复
  • @ftong 个人感觉没什么用,因为这个根本的是因为进入这个回调之后table内部还有其他的逻辑处理,所以跟click或者focus没太大的关系,你的问题不清楚你说的滞后是什么意思,是不是你早上发的帖子的问题,如果是的话那是因为你事件监听的地方写错了,你是在edit的时候再做了一个监听,实际这个时机不对,你实际在edit监听中是要触发监听,而不是加监听
    0 回复
  • @ftong 但是实际也不需要再edit里面做什么,因为你是监听回车然后跳到下一个td
    0 回复