0

当 div 的高度达到一定长度时,我试图将一个长字符串拆分为多个动态 div。这是我认为应该工作的代码:

$(document).ready(function () {
    var arr = longishstring.split(' ');
    $('#bookpages').append("<div id='cont'></div>");
    elem = $('#cont');
    for (i = 0; arr.length > i; i++) {
        elem.append(arr[i] + ' ');
        if (elem.text().height > 475) {
            $('#bookpages').append("<div id='cont" + i + "'></div>");
            elem = $('#cont' + i);
            elem.append(arr[i] + ' ');
        }
    }
});

问题是它将 div 高度读取为 0 而不是更新后的高度。我在这里想念什么?如果我按长度拆分它就可以了,但这不适用于我想要做的事情。

4

3 回答 3

1
$(function(){
    var l, i = 0, arr = longishstring.split(' '),
        elem = $('<div id="cont"/>').appendTo("#bookpages");
    for (l = arr.length; l > i; i++) {
        elem.append(arr[i] + ' ');
        if (elem.height() > 475) {
            elem = $('<div id="#cont'+i+'"/>').appendTo('#bookpages');
            elem.append(arr[i] + ' ');
        }
    }
});
于 2013-03-15T18:35:34.193 回答
0

elem.text().height不会给你身高,它会给你undefined

利用:

elem.height()
于 2013-03-15T18:12:17.317 回答
0

这似乎是由编码的位置引起的。出于某种原因,如果我在另一个 javascript 插件的编码之前使用该代码,那么高度总是返回为 0。通过将代码放在另一个脚本后面,创建了 div。现在唯一的问题是,尽管已创建,但 div 似乎无法与插件一起使用,并且 #bookpages 的 CSS 被忽略了。我最终使用了大部分乔·约翰逊版本的剧本,并结合了我自己的风格。

    $(function() {
    var l, i = 0, arr = longishstring.split(' ');
      $("#bookpages").append('<div id="cont"></div>');
      elem = $('#cont');
      for (l = arr.length; l > i; i++) {
        elem.append(arr[i] + ' ' + elem.height());
        if (elem.height() > 200) {
          $("#bookpages").append('<div id="cont'+i+'"></div>');
          elem = $('#cont' +i);
          elem.append(arr[i] + ' ');
        }
      }
    });

我将不得不研究为什么 CSS 被忽略,并且最终可能不得不发布与此相关的另一个问题。感谢大家!

于 2013-03-15T19:57:27.670 回答