1

我正在尝试实现新闻源。当页面第一次加载 20 个带有朋友图片数据等的新闻项目时,加载一切都很好。

然后当用户更新他们的状态时,我想在新闻源中显示这个和任何新朋友的状态。这是我要动态创建的结构

...
<div id="doNews" class="colwrap st-leftmenu">
  <ul id="theNews" class="newsList">
      <li class="newsItem">
          <div class="st-col2">
            <img class="newsImage" src="profile/16/images/thumb/cloth.gif">
            </img>
          </div>   
          <div class="st-col1">
            <div class="st-name">John Smith</div>
            <!-- other user status divs -->
          </div>
      </li>
      <!-- other lis -->
  </ul>

而且我已经能够img使用这个 jQuery 创建部件:

function showStatus(data){
    var jsondata = $.parseJSON(data);
    $('#doNews').empty();
    $('#doNews').append($('<ul/>', {"class": "newsList", id: "theNews"}));
    $.each(jsondata, function(i, item){
        $('<img src="' + showpic(item[3]) + '" class="newsImage">')
            .load(function(){
        $(this)
            .appendTo($('#theNews'))
            .wrap($('<li>', {"class": "newsItem"}))
            .wrap('<div class="st-col2">');
      });
});
//  $('#theNews li').each(function(){
//      $(this).append($('<div>', {"class": "st-col1"}));
//  });

$("#statustext").val('');
}

但是,注释掉的部分似乎不起作用(b / C页面已经加载?)如果我把它放在加载函数中,它<div class="st-col1">会附加到我不想要的img。

4

2 回答 2

1

li您在图像加载回调中创建s ,然后将 s 添加divli那里。

$('<img src="' + showpic(item[3]) + '" class="newsImage">')
    .load(function(){
        $(this)
            .appendTo($('#theNews'))
            .wrap($('<li>', {"class": "newsItem"}))
            .wrap('<div class="st-col2">')
            .closest('li')
            .append($('<div>', {"class": "st-col1"}));
      });
});
于 2013-07-15T02:38:36.700 回答
1

尝试

function showStatus(data){
    var jsondata = $.parseJSON(data);
    $('#doNews').empty();
    $('#doNews').append($('<ul/>', {"class": "newsList", id: "theNews"}));
    $.each(jsondata, function(i, item){
        $('<img src="' + showpic(item[3]) + '" class="newsImage">')
        .load(function(){
            $('<li>', {"class": "newsItem"})
            .append($('<div />', {"class": "st-col2"}).append(this))
            .append($('<div>', {"class": "st-col1"}))
            .appendTo('#theNews');
        });
    });
    //  $('#theNews li').each(function(){
    //      $(this).append($('<div>', {"class": "st-col1"}));
    //  });

    $("#statustext").val('');
}
于 2013-07-15T02:42:31.717 回答