本来想现在这个公司能让我学学服务器方面的东西.....看来是有些渺茫了...早说嘛...早说我就不来了,在原来那里还给我管两部开发服务器...经理肯教。不能怪别人,怪自己吧。
好! 牢骚发完了..我来现在这个新公司弄javascript去了........javascript我也是没用过几次的...
但是....网站新功能模块的所有javascript都要我一个人完成...shit......
好。切入重点好了.
恩,我用到了一个很强大的jquery插件。 datatables 详情请点击进去看。
老外的东西...没有中文排序...今天经理要求表格要有中文排序。死啦! 我以为要大动干戈...不过.因为这个插件对第三方开发支持比较灵活...得救了。
简单说一下。 datatables这个插件的排序默认提供按三种类型,string, number, 第三个忘记了.自己看吧。
于是,其他类型的排序就要自己定义了..应该说可以自己定义!!!
插件的string类型是按字符编码排序的,而我们所谓的中文排序是要按拼音排序的!!!!
google 了一下... javascript提供了这方面的功能。oh.yeah.....
下面这句代码应该好似俺本地化来做比较....中文环境就用拼音比较的意思... 返回 -1,1。(好像是....也忘记了。上网搜搜就有了...额...这是病。)
// oSort 是排序类型数组, 'chinese-asc' 是自己定义的类型的排序(*-asc || *-desc)名称. // 插件应该会根据表格中的内容的类型(string, number, chinese :) ), // 比如: chinese类型的用 oSort['chinese-asc'] 方法进行比较排序。所以下面定义类型的时候要和这里对上。 //用oSort对应的function 来进行比较排序. // 所以,function 里是自定义的比较方法. jQuery.fn.dataTableExt.oSort['chinese-asc'] = function(x,y) { //javascript 本身提供的本地化比较函数。 return x.localeCompare(y); }; jQuery.fn.dataTableExt.oSort['chinese-desc'] = function(x,y) { return y.localeCompare(x); }; //aTypes 是插件存放表格内容类型的数组,可以根据自己需求添加,比如 curreny类型。 // 下面用到的正则也是google来的,判断是否是中文字符. //返回 null 则默认表格内容是 'string' 类型。 jQuery.fn.dataTableExt.aTypes.push( function(sData) { var reg =/^[\u4e00-\u9fa5]{0,}$/; if(reg.test(sData)){ return 'chinese'; } return null; } ); /* 就说这么多吧...... */