如何在div数组上使用数据标识符?

时间:2015-05-04 11:14:14

标签: javascript jquery

大家好,我目前正在制作一个滑块,除了最后一件事之外,我几乎已经完成所有操作。

我的要点是确定您当前正在查看的图像,并且还可以用于此处所示的导航(2个滑块,因为这是我遇到问题的地方):

http://puu.sh/hAYp5/15477cd325.png

对于实际的点,我已经能够使用此代码:

$(this.dots).click(function() {
  var selected = $(this).data("img");
  sliderEle.goTo(selected);
  $(dots).removeClass("active");
  $(this).addClass("active")
})

上一个按钮和下一个按钮但是我有一个问题,这是我目前得到的,它影响两个滑块,因为它不是我想要的单个滑块特定的:

goTo: function(index) {
if (index < 0)
  return;

// move <ul> left
this.ul.style.left = '-' + (100 * index) + '%';

this.currentIndex = index
},

goToPrev: function() {
 this.goTo(this.currentIndex - 1)
 $(this.dots).removeClass("active");
 $('.slider-dot[data-img="'+this.currentIndex+'"]').addClass("active");
},

goToNext: function() {
 if(this.currentIndex + 1 > this.li.length - 1) {
  this.goTo(0)
 }else {
  this.goTo(this.currentIndex + 1)
 }
 $(this.dots).removeClass("active");
 $('.slider-dot[data-img="'+this.currentIndex+'"]').addClass("active")
}

如何更改此行:

$('.slider-dot[data-img="'+this.currentIndex+'"]').addClass("active")

使用这样的东西:

$(this.dots)

所以它针对的是单个滑块,而不是所有滑块。

完整的js来源:http://pastebin.com/NaDw0jib

2 个答案:

答案 0 :(得分:0)

使用jquery中的.filter解决

var currentDot = $(this.dots).filter('[data-img="'+this.currentIndex+'"]');
$(currentDot).addClass("active");

答案 1 :(得分:0)

为原型添加一个功能

this.getNav(3).addClass('active');
十,像这样使用它:

st = set(b)
print([b.index(x) for x in a if x in st])

顺便说一句,我可能要么扩展初始化方法以实际创建DOM表示,要么失败,至少使用类而不是硬编码到children [i]引用。它会在以后让你头疼。