维护同事写的代码,在原本的html结构上新增一个全选框。
对方用了jquery的clone()来实现新增表格,结果在新增时,表格中渲染的icheck结构也被直接复制到新对象,这样获得的新全选框是不可用的。
思考了一下,新复制的对象大概是只把样式覆盖了,但并没有注册到icheck。
那么我们可以鸡贼一下,在复制之前悄咪咪把旧的icheck注销,即:
$(obj).iCheck('destroy')
在复制完成后再重新创建icheck
$(obj).iCheck({checkboxClass : 'icheckbox_square-blue'});
尝试了一下,在新增表格过程中,肉眼看不出注销后的裸体checkbox,完美√