jQuery 1.3提供了很多新特性,不少同学也纷纷更新到了jQuery 1.3,也有同学升级后发现有些功能失效了。这里就简单写一下jQuery 1.3的升级指南。如果这里没有提到的而你却遇到了并且解决了,欢迎留言告诉更多人。如果没,所好能写个简单测试样例以说明问题。
这里不涉及任何新增特性,只有关于修改过的内容。要看新增特性,请参考这里
翻译了通篇文档,主要发现以下几点容易导致升级失败:
1,取消了属性选择器的@前导符号。这点会造成升级失败。虽然这个@符号在jQuery 1.2中已经不推荐使用了,但由于种种历史原因还是有很多人用。修复这个问题的方法很简单,只需要简单删除那个@符号即可。
2,trigger()方法触发的事件会冒泡了。这点可能在某些重要的功能上发生偏差。尤其是一些大项目上。要解决这个问题,需要在事件处理函数里加上e.stopPropagation() 或者函数返回false即可。
3,这点实际上并没有在发布信息中提到,但却也是很重要的问题。[attribute!=value]这个属性选择器在jQuery 1.3之前是这样的:”匹配那些没有指定的属性的元素,或者指定的属性不等于特定值的元素。”,这等价于:not([attr=value])。而在jQuery 1.3中是这样的:匹配所有含有指定的属性,但属性不等于特定值的元素。
这个改动是为了符合w3c的标准。虽然有点绕……
要解决这个问题,上面也已经提到了,有选择得使用:not([attr=value])代替即可。(但目前这个似乎在ie下有bug,依然跟以前的表现一样,ff和chrome下符合这个描述)
1.3.1中又改回来了……[attribute!=value]依然等价于:not([attr=value])。如果要找含有特定属性且不等于指定值的请继续使用[attr]:not([attr= value])
更多的问题尚未发现,如果各位同学遇到了请不要吝惜提出来~谢谢。