综述:
今天遇到一个十分奇怪的问题,顺利解决,原因是加载了两个jQuery.js,引起了冲突,导致了前一个jQuery.data 方法绑定的数据都被冲掉了.
具体是这样 :
我在主页面car.html 上引用了一个jQuery.js, <script type="text/javascript" src="../../public/js/jquery-1.9.1.min.js"></script>。 在car.html中的一个dom元素,暂且叫它#a,使用了data方法绑定了数据,如$("#a").data(name,value)之后,使用$.load方法 ,加载了一个html页面 list.html,它又引用了一个jQuery文件,<script type="text/javascript" src="../../public/js/jquery-1.9.1.min.js"></script> ,
解决过程
在之后的操作中发现,在car.html中绑定的数据在load了 list.html页面后数据都没有,一开始认为我在这其中有dom操作,会不会是改变了dom, 把绑定在它上面的数据给消除了?结果绑定在一个没有dom操作的dom上问题依旧. 之后又想是这个data 和 load方法有冲突,或者是load方法的回调函数捣鬼,先是屏蔽掉load的回调函数,发现问题照旧 . 那会不会是jQuery有bug? 不会的, 不会的, 我大jQuery 怎么会有怎么蠢的bug , 缩小范围, 看到list.html这个页面后 心生一计, 换个页面试试?果不其然,data 方法没有问题, 接下来就顺理成章了.
思考:
其实说到这里解决的方法就很多了,google 百度 jQuery 冲突解决都是,这里我想说下的是使用类似data方法, 这个data方法最大的好处就是可以存放对象,操作方便,但是正如我遇到的这个问题的后续一样,我在list.html中,又想通过data把 car.html 上 用data方法存放的数据取出来,结果发现是痴人说梦,这是两个jQuery文件,相当于两个人 你有手,我也有手,你能把你的手给剁下来给我么? 所以这就告诉我, 在使用一些新的东西的时候要注意它的边界.能干啥, 不能干啥 要有个数.
题外:这个博客是把我在工作中遇到的问题整理起来的,如果有什么不对的地方还请大家指正(应该也没什么人看吧,哈哈)