0

我正在使用 javascript/jquery 从头开始​​构建幻灯片。我在幻灯片下方动态添加分页作为数字。我想要的是,无论幻灯片处于活动状态,然后应通过添加一个名为 的类来突出显示其各自的分页数,该类active缓存在名为this.activeor的变量中o.active。出于某种原因,即使我使用正确的选择器来定位它们,也没有任何反应。

这是我的代码:http: //jsfiddle.net/A3rQS/

你可以看一下语句o.paginationItem,在函数中调用fadingFX()。我不知道它有什么问题,它无法找到。

拜托,有人可以帮忙吗...?

非常感谢

4

3 回答 3

2

除非我误读了代码,否则您只需设置paginationItem 一次的值,这行:

this.paginationItem = this.pagination.find('li');

这不是动态的,我的意思是当调用结果发生变化时它不会更新this.pagination.find('li')- 它只是设置为执行该行代码时的任何值。如果你想改变它,你必须再次调用那行代码。

于 2012-11-26T10:22:17.787 回答
1

您的问题是嵌套在 o.paginationItem 中的 jquery 对象,它返回的长度为 0。反转到选择器本身使其工作:

http://jsfiddle.net/A3rQS/4/

        console.log(o.paginationItem.find('.active'));
        console.log($('.pagination').find('.active'));

您将在控制台中看到 2 个 jQuery 对象之间的区别。我认为问题来自创建 o.paginationItem 的那一刻以及 jquery 如何更新(或更可能不更新)它。

我建议您在每次调用该函数时刷新集合,而且您还遇到了 activeSlide.index() 的索引问题,它在错误的范围内返回 i-1 值。如果您丢失了对索引的跟踪,请尝试将它们写入 rel html 属性。

于 2012-11-26T10:34:44.977 回答
1

这就是发生的事情:

  • 您创建了 SlideshowMod 的新实例
  • 将一堆变量分配给该实例(幻灯片、控件...分页、分页项...)
  • 此时,.pagination页面上没有元素,因此paginationpaginationItem没有引用您认为的内容
  • 您调用start()方法并在其中调用addPagination()方法
  • 你的内心addPagination正在创建.pagination元素并将其添加到 DOM中
  • pagination只有现在才有可能获得对该元素的引用(因为它最终在 DOM 中),所以这是您应该分配和paginationItem变量的时刻
于 2012-11-26T11:10:52.437 回答