-1

假设我有 4 个选项卡,直到它们被点击(延迟加载概念)。

什么时候:

单击 Tab1:通过 ajax 将数据插入该选项卡。

单击 Tab2:通过 ajax 将数据插入该选项卡。

等等

返回的数据包括:

<ul class="elements">
  <li>
    <div>Stuff</div>
    <ul class="comments">
      ...Initially empty
    </ul>
  </li>
</ul>

现在在成功函数中,我正在调用另一个函数,该函数获取与父 ul.elements 的 li 子级关联的所有注释,这就是我遇到麻烦的地方。

所以在所有元素都加载到选项卡之后,我有这个需要修改的功能:

function LoadComments(data) {
  $newData = $(data).filter('ul.elements');
  $newData.find('ul.comments').each(function() {
    var commentsHome = $(this);

$.ajax({
  url: '/MyFeed.aspx',
  type: 'POST',
  dataType: 'html',
  data: {
    "xfd" : "GetComments',
  },
  success: function(data) {
    commentsHome.html(data);
  }
});
  });
}

到目前为止,我的变量 commentsHome 似乎没有工作。我的目标是仅为新数据的每个返回元素加载评论。所以当点击Tab2时,只对点击Tab2后返回的数据执行该功能。

不知道我做错了什么:(

谢谢!

4

1 回答 1

0

在 AJAX 成功函数中,commentsHome变量对您不可用。

但是,您可以创建一个隐藏<input type="hidden" id="commentsHome" />并将值存储在其中,然后在 AJAX 成功函数中引用它。

function LoadComments(data) {
  $newData = $(data).filter('ul.elements');
  $newData.find('ul.comments').each(function() {
    $('#commentsHome').val($(this));


$.ajax({
  url: '/MyFeed.aspx',
  type: 'POST',
  dataType: 'html',
  data: {
    "xfd" : "GetComments',
  },
  success: function(data) {
    var commentsHome = $('#commentsHome).val();
    commentsHome.html(data);
  }
});
于 2013-08-19T21:20:59.873 回答