泽元UI框架,在2015年4月,为了兼容ZUI,将UI框架中的jQuery从1.8.3升级到1.11。对于由此可能引起的JS脚本错误,列举如下。
 
一、从jQuery1.9及更高版本已经没有 $.browser 对象,
这是升级版本后最常见的JS错误“$.browser is undefined”,在之前项目中使用的jQuery插件,如jquery.imgareaselect.js、jqzoom.js……等,常常读取 $.browser.msie、$.browser.safria的值来判断浏览器。现在不能再使用这种方式,需要升级这些jquery插件到适合jquery1.11的版本,或者打开这些jquery插件的源码,在最上面加上以下代码
 
或者手动搜索$.browser.*,并替换为原生的浏览器判断方法。
作出的替换例举如下:
$.browser.safari  替换为  /safari/i.test(navigator.userAgent)
$.browser.opera   替换为  /opera/i.test(navigator.userAgent)
$.browser.msie    替换为  /msie/i.test(navigator.userAgent)
$.browser.mozilla  替换为  /mozilla/i.test(navigator.userAgent)
 
二、从jQuery1.9及更高版本已经没有 $().toggle()方法,
需要在jquery插件内补上toggle方法,或主动使用show()或hide()方法来代替toggle()方法。
给jquery添加toggle方法代码如下
 
三、有一个常常被忽视的问题,jquery1.11的选择器sizzle相对于jquery1.8.3中亦有升级,特别注意如下的写法
$('.classA :checked')
在低版本中选择的是样式名为classA的被选中表单项。而在jquery1.11中的sizzle,将选择样式名为classA的元素的后代元素中被选中的表单项。
 
所以要搜索\$\(['"][^'"] :)来查找到类似的选择器,加以修改,去掉空格。