input 标签 type=“number” 的两个加减的箭头有监听事件么

提问 已结
19 638
大大大西瓜
悬赏:20飞吻
input 标签 type=“number” 的两个加减的箭头有监听事件么
回帖
  • @大大大西瓜 一半吧,这个是较早之前有个社区的同学问的一个问题,然后我就自己复现了一下他的功能顺带处理了他的问题。那个帖子比较久找不到了估计。我记得他的问题是加进去这个功能之后,行悬浮事件异常,就是鼠标选中一行会同时多行显示高亮。原因是我们都是监听按钮“+”点击,然后给添加多一个合并行然后把想要显示的内容放在里面,这个操作对于框架设计者当初设计的时候是没有料到的或者不打算支持的,所以以前行的一些事件处理起来就非常简单粗暴,没加进去这玩意之前是完全没问题可用的,但是拓展了之后以前的一些逻辑就变得不适合了,所以得自己动手改造一些源码来让table的事件恢复正常。如果感兴趣的话可以把测试代码给你 https://pan.baidu.com/s/1-FKDnfMIRvPThOTVvuQDAQ ,还有需要修改源码的地方。
    0 回复
  • @flyer520103 这个是做其他测试的时候加进去的,不相干的,可以删掉,这个是用来处理浮点数运算还有保留小数点后几位的一个插件。
    1 回复
  • @岁月小偷 收到召唤[偷笑]
    0 回复
  • @大大大西瓜 [微笑] 没听说过,不过会触发change事件,点击上下箭头的话,看看能不能用这个事件来处理你的逻辑。
    0 回复
  • @岁月小偷 好的 我先拿change去玩一玩哈[害羞]
    0 回复
  • @岁月小偷 大腿有没有比较好的table的插件推荐啊,比如能有展开啊,footer啊之类的
    0 回复
  • @大大大西瓜 是胳膊来着,大家的风格都不太一样吧,boostrap的table貌似这些都有,然而样式跟layui的比较不搭比较传统的感觉。其他的也没太注意,不过真心估计没有一个是可以完美支持所有效果的,都需要取舍,比如展开的,势必要考虑是否放弃固定列,之类的。layui自己扩展也能做出这些效果的哈,比如展开里面嵌套表格。
    0 回复
  • @岁月小偷 这个动图的table支持行编辑么
    0 回复
  • @岁月小偷 大腿这个是你自己扩展的么
    0 回复
  • @大大大西瓜 不太理解你问的哈,只是行编辑是啥?说后面带toolbar吗?如果是的话是支持的,原来table支持的绝大部分功能都是一样支持的,目前知道的就除了一个不支持就是fixed设置,难点在于如何实时同步fix块的位置和实际的tbody的tr保持一致,但是也不是说绝没办法支持。
    0 回复
  • @岁月小偷 嗯嗯,这个蛮厉害的呀,有源码吗这个,嘻嘻 我想看看耶
    0 回复
  • @岁月小偷 好哒好哒谢谢啊 嘿嘿嘿
    0 回复
  • @大大大西瓜 嗯嗯,不客气,刚刚看了下测试代码里面还测试了其他的内容忘记摘掉了,你自己去掉那些没用的额。然后源码修改的就是table的行事件,记得就这一个好像。有问题再找我我看看是不是还有其他需要改的太久给忘了。


    代码
    //行事件
    that.layBody.on('mouseenter', 'tr', function(e){
    layui.stope(e);
    var othis = $(this)
    // othis.index()得到的index不对
    // ,index = othis.index();
    ,tableElem = othis.parents('.' + ELEM_VIEW ).first()
    ,index = othis.data('index');
    // that.layBody.find('tr:eq('+ index +')').addClass(ELEM_HOVER)
    othis.addClass(ELEM_HOVER);
    if (index >= 0) {
    // that.layBody.find('table>tbody>tr[data-index="'+index+'"]').addClass(ELEM_HOVER);
    tableElem.find('>.layui-table-box').find('>' + ELEM_BODY).find('>table>tbody>tr[data-index="'+index+'"]').addClass(ELEM_HOVER);
    tableElem.find('>.layui-table-box').find('>' + ELEM_FIXL +',>' + ELEM_FIXR).find('tr[data-index="'+index+'"]').addClass(ELEM_HOVER);
    }
    }).on('mouseleave', 'tr', function(e){
    layui.stope(e);
    var othis = $(this)
    // ,index = othis.index();
    ,tableElem = othis.parents('.' + ELEM_VIEW ).first()
    ,index = othis.data('index');
    // that.layBody.find('tr:eq('+ index +')').removeClass(ELEM_HOVER)
    othis.removeClass(ELEM_HOVER);
    if (index >= 0) {
    tableElem.find('>.layui-table-box').find('>' + ELEM_BODY).find('>table>tbody>tr[data-index="'+index+'"]').removeClass(ELEM_HOVER);
    tableElem.find('>.layui-table-box').find('>' + ELEM_FIXL +',>' + ELEM_FIXR).find('tr[data-index="'+index+'"]').removeClass(ELEM_HOVER);
    }
    });
    0 回复
  • @岁月小偷 哇,我一回来打开社区看到你这么多评论,真不知道该说什么了。十分感谢。
    0 回复
  • @大大大西瓜 没事哈[微笑] 突然想起来当时还改的一个地方就趁还记得回复了一下。
    0 回复
  • @岁月小偷 你好,请问你那个table行里面嵌套表格是怎么做的呀?
    0 回复
  • @flyer520103 我的测试代码放在这个云盘 https://pan.baidu.com/s/1-FKDnfMIRvPThOTVvuQDAQ 上面额,还有需要修改源码来适应修改后鼠标移入一行的事件也在后面的回复中提到了额,你可以下载下来看看,加嵌套表格的逻辑都在测试代码里面。
    0 回复
  • @岁月小偷 好的,谢谢
    0 回复
  • @岁月小偷 你的代码中引用BigDecimal.js是什么呢?
    0 回复