【问题标题】:JQuery for loop after ajax callajax调用后的JQuery for循环
【发布时间】:2012-04-26 17:51:20
【问题描述】:

我正在尝试循环ajax调用成功后返回的数据并将结果添加到pagination plugin.

这是我的代码:

 var imagesPerPage = 2, pageNumber = 1;
  var pagesContainer = $('#pagesContainer'),
  imagesInPage = 0,
  divPage = $("#p1");

    $.ajax({
           type: "POST",
           url: "Default.aspx/GetImages",
           data:{},
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (response) {

             //Here goes my for loop                    

           }
      });

这是我的 for 循环,我需要从 webmethod 获取图像并将它们循环并添加到分页中。

 for (i = 0; i < response.d.length; i++) {
          if (imagesInPage >= imagesPerPage) {
          imagesInPage = 1;
          pageNumber += 1;
          divPage = $('<div/>', { id: "p" + pageNumber }).addClass('pagedemo').hide().appendTo(pagesContainer);
          } else {
          imagesInPage += 1;
          }
}

这是我的分页默认配置:

 $("#pagination").paginate({
              count: pageNumber,
              start: 1,
              display: Math.min(7, pageNumber),
              border: true,
              border_color: '#fff',
              text_color: '#fff',
              background_color: 'black',
              border_hover_color: '#ccc',
              text_hover_color: '#000',
              background_hover_color: '#fff',
              images: false,
              mouse: 'press',
              onChange: function (page) {
              $('#paginationdemo ._current').removeClass('_current').hide();
              $('#p' + page).addClass('_current').show();
        }
  }); //pagination

现在我的问题是,当我尝试获取一个图像的响应时,它没有向我显示图像和分页。如果它不止一个,那么它开始向我显示分页和图像。

截图

那么谁能告诉我我哪里出错了?

【问题讨论】:

  • 只是建议:使用i++ 而不是i += 1
  • 当 ajax 只返回一个图像时,你能发布 json 对象吗?在这种特定情况下,您可能没有 d 对象
  • @DotNETNinja-Where?我用过 i++。
  • @F.Calderan-我添加了截图。

标签: jquery ajax image for-loop jquery-pagination


【解决方案1】:

您想从哪里获得一张图片的响应?如果您尝试在 if 条件下执行此操作,那么它仅适用于一个响应,因为

imagesInPage >= imagesPerPage

当 imagesPerPage = 2 和 imagesInPage=0 时评估为 false;

如果您的响应类型是 json 并且这不能解决您的问题,请尝试使用

$.each(response,function(index,data){
    //check each image here 
      // data.id gives you the id of each json object in the response
})

【讨论】:

    【解决方案2】:

    这是您最近遇到的分页问题。要解决此问题,您将需要一个条件。检查响应的长度。如果它是 1 然后添加一些默认值,这将起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 2016-06-08
      • 2015-04-28
      • 2019-08-27
      • 2014-07-31
      • 2012-10-18
      • 1970-01-01
      相关资源
      最近更新 更多