jQuery-仅在另一个函数完成运行后运行该函数

jQuery-仅在另一个函数完成运行后运行该函数,jquery,jquery-cycle,Jquery,Jquery Cycle,我有一个很长的列表,我想使用jQuery循环“分页”。列表中大约有40个项目,我想一次显示5个,底部是下一个/上一个 这就是我想做的: 第一个函数将列表分成5个项目的块,然后jQuery循环将对结果运行 我把清单分为5项,很好。但是jquerycycle一直告诉我它没有任何div可以使用 在jQuery循环开始之前,如何确保第一个函数完全完成了对列表的切片 谢谢 Terry事实上,正如@minitech提到的,for循环保证在您进行循环插件初始化时完成 问题在于您的选择器: $('#projec

我有一个很长的列表,我想使用jQuery循环“分页”。列表中大约有40个项目,我想一次显示5个,底部是下一个/上一个

这就是我想做的:

第一个函数将列表分成5个项目的块,然后jQuery循环将对结果运行

我把清单分为5项,很好。但是jquerycycle一直告诉我它没有任何div可以使用

在jQuery循环开始之前,如何确保第一个函数完全完成了对列表的切片

谢谢


Terry

事实上,正如@minitech提到的,for循环保证在您进行循环插件初始化时完成

问题在于您的选择器:

$('#projectList').cycle(...)
projectList
元素中没有任何div,只有一个
ul

按如下方式更改选择器:

$('#projectList ul').cycle(...)

当然。。。您的
wrapAll
调用使标记不正确。您现在有
ul>div>li
,这几乎肯定是无效的。。。但是,无论如何,它应该可以工作,至少让您更进一步:)

问题是您的
仍然嵌套在
中。你需要把它们从那里移除。我不知道出了什么问题,我不能让它正常工作。您是否缺少样式表?无论如何,这是我的重写,它使用了正确的标记:

var count = 1;
var newList;
var projectList = $('#projectList');

projectList.find('ul').remove().find('li').each(function(i) {
    if(i % 5 === 0) {
        newList = $('<ul>');
        newList.appendTo($('<div>').addClass('panel panel' + count++).appendTo(projectList));
    }

    newList.append(this);
});

projectList.cycle({
    fx: 'scrollVert',
    speed: 'fast',
    timeout: 0,
    prev: '.back',
    next: '.more'
});
var计数=1;
var新列表;
var projectList=$(“#projectList”);
projectList.find('ul').remove().find('li').each(函数(i){
如果(i%5==0){
新列表=$(“
    ”); newList.appendTo($('').addClass('panel panel'+count++).appendTo(projectList)); } 追加(这个); }); projectList.cycle({ fx:'滚动垂直', 速度:“快”, 超时:0, 上一页:'.back', 下一个:“.更多” });

它已保证已运行。问题出在别处。控制台说
jquery.cycle.lite.js:28;幻灯片太少:1
我不知道你为什么被否决。。。您的解决方案无疑使标记更加正确,将带有内部
div
s的
ul
展开为多个
ul
s,其中只包含
li
s。我不确定我是否完全喜欢
newList
构建方法,但是,嘿,它是有效的:)@rfunduk:别担心,这是一个连续的下降投票者。谢谢:)