新版的手术移动护理系统,增加了一项提升用户使用体验,提高工作效率的功能,对于老版本的手术排班,在保证了原有功能的情况下,需要增加在点击某一个患者的时候,同时选中当前房间今日的所有患者,统一安排护士信息。对于升级来说,原有的框架版本可能太低,就需要我们自己来实现一些功能。
对于Layui框架table模块自带的监听事件,我们没有办法把模拟点击的功能写到里面,因为模拟点击每次都会执行点击事件,则会造成监听事件进行死循环当中,所以我们的事件需要自定义来完成。
对于功能要求来说,代码的思路也就比较清晰,在点击患者信息一览的时候,判断当前表格中所有信息里面,手术间号与当前点击的患者的手术间号一致的手术,进行模拟点击。
这里贴一下我程序里面的执行代码
这里会有什么bug呢,就是之前说到的死循环,因为点击就会触发layui自带的table.on的监听,造成死循环,这里就是比较难处理的地方,所以呢我们在这里就需要做一些调整,来防止触发死循环,这里我的思路是,在触发模拟点击的时候,把点击的范围缩小到table最前面的checkbox小框,也就是说定义模拟点击的地方,这里是第一步
第二部的话就是阻止这一小块的事件,也就是点击这里阻止后面的监听事件继续监听触发死循环,这里用到一个方法stopPropagation(),通过限制模拟点击位置的事件触发来阻止死循环,达到我们想要的效果