0

我有一个动态注入<li>的项目,第一个项目被标记为“.current”类。我在 DOM 中也有“下一个”按钮,它从列表中带有“.current”类的项目加载下一个项目。但是,当我动态重新填充列表时,“下一步”按钮将加载列表中的所有其他项目。如果我再次重新填充列表,下一个按钮将加载列表中的每 3 个项目。List 通过 $.ajax 填充,是一个 json 数据类型。每次我重新填充时,我都会删除所有列表项,如下所示:

 $('#playlist').children().remove();

下一个按钮找到下一个项目,如下所示:

 $('#playlist ul').find(".current").nextAll().first().children('a');

关于为什么加载列表中的“下一项”会不一致的任何想法/建议?显然,它也与重新填充列表有关。我在填充列表的 $.ajax 调用中设置了 "cache":false ......

当这种不一致发生时,行为似乎是下一个项目从先前加载的列表中的项目(类“.current”)开始。

小提琴: http: //jsfiddle.net/unA6h/7/ (不是我拥有的完整代码,而是让我头疼的部分;列表从 ajax call..json 等填充。)

4

1 回答 1

0

you are calling .nextAll() on the anchor tag which doesn't have any siblings, so .nextAll() doesn't get any elements. you need to add .parent() before .nextAll(). I also made a small optimization below, no point in getting teh id and selecting by id when you already have the element.

var next_item = $('#playlist ul').find('.current').parent().nextAll('li[role="normal_item"]').first().children('a');
setItemAsCurrent(next_item);

http://jsfiddle.net/unA6h/16/

于 2012-11-09T22:27:12.913 回答