最近在用jQuery.nestable.js插件做一个菜单排序和添加菜单的功能,在使用nestable的serIalize方法获取数据时总是返回控件第一次加载的值。
跟了源码以后发下了如下代码:
发现,每个li的所有data-*的值是通过jquery的data方法获取的(不清楚data方法作用的同学可以百度下),而data方法在获取值的时候会判断是否有缓存,如果有就返回缓存里边的值。
最后的解决办法是在调用li.data();之前清空li相关的缓存,最后对插件做了如下修改解决问题:
关于cleanData()这个方法最初是不知道的,后来百度extend 才知道有这么个方法,不知道是不是最好的解决办法,希望有前端大神多多指教!!!
时隔多年终于又遇到了这个问题,看到之前的评论有人问这个方法如何调用,今天就再次补充下。cleanData 是JQuery的函数,入参有两个:1.要清除缓存的DOM,2. 布尔值(咱不清楚什么作用,但传True好使)。完整的函数模式是: JQuery.cleanData( [elm], True )