xiaoluchi 发表于 2012-10-24 23:55:06

jquery实战-定宽(二)

上一节,我提了个问题给大家,说是用jquery对象方法来封装对象,你们做好了吗,现在我把我自己写的代码,供大家参考,当然了,我写的肯定不是最好的,就当时抛砖引玉吧,你们更好,
;(function($){    $.extend($.fn,{      fixedWidth : function(options){            var options = $.extend({},$.fn.fixedWidth.defaults,options);            //函数体            var str1;//这个变量要定义在this.each外面,否则return时,在html调用,会取不到这个值,这个要感谢我的同事,张栋            this.each(function(){                var str= $(this).text();                var length = options.length;                var char = options.char;                //                   if(!char){var char ="..."}                  var num = length - lengthB(str);                if(num<0){                  var _len= length-lengthB(str);                  str1 = substringB(str,length-lengthB(char))+char;                                    }                //                function lengthB(str){                  var num=0,len =str.length;                  if(len){                        for(i =0; i<len;i++){                            if(str.charCodeAt(i)>255){                            num+=2;                            }else{                            num+=1;                              }                        }                  }else{                        return 0;                        }                  return num;                   }            function substringB(str , length1){                var temp="",num=0;                _len = lengthB(str);                if(_len){                  if(_len<length1){                        return str;                  }else{                            for(var i =0; i<length1; i++){                              if(num>=length1){                                    break;                                    }                              if(str.charCodeAt(i)>255){                                    num+=2;                                    temp+=str.charAt(i);                                    }else{                                        num+=1;                                        temp+=str.charAt(i);                                        }                            }                            return temp;                        }                                    }else{                  return null;                  }               }                //            })//return            return str1;      }//fixedWidth       })$.fn.fixedWidth.defaults ={length :10,char :"..."};})(jQuery);
页: [1]
查看完整版本: jquery实战-定宽(二)