使用各种文本计算div的宽度在Firefox v.7中不起作用

时间:2011-10-05 16:54:11

标签: jquery

我创建了一个脚本来确定当div中放入各种单词时div是否会扩展超过130px宽度。该脚本基于Deepak Nadar的解决方案:Calculate text width with JavaScript

我的问题是看起来在注入的div准备好之前返回了outerWidth。我在while循环之前插入了2个警报。任何人都可以告诉我为什么我得到两个值,更好的是,如何推迟返回outerWidth直到元素准备好?谢谢!

    for(i in words){

      var div = document.createElement('div');
      document.body.appendChild(div);
          $(div).css({
           position: 'absolute',
           left: -1000,
           top: -1000,
           display: 'none'
          });                 

            $(div).html(words[i]);

            var styles = ['font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing'];

              var $this = $(this)

              $(styles).each(function() {
               var s = this.toString();
               $(div).css(s, $this.css(s));
              });

              alert($(div).outerWidth()); //Returns incorrect value of 121
              alert($(div).outerWidth()); //Returns correct value of 134

            while($(div).outerWidth() > MAXWIDTH){
                FONTSIZE--;
                $(div).css('font-size', FONTSIZE + 'px');
                $(this).css('font-size', FONTSIZE + 'px');
                }                       
            }       }

0 个答案:

没有答案