jQuery' s:nth-​​child和:first-child选择错误的元素

时间:2013-03-20 14:50:05

标签: jquery css soundmanager2

我正在使用Soundmanager2和RoyalCarousel的组合来获得播放列表风格的旋转木马。我现在的目标是使其成为当选择特定幻灯片时,通过使用后退/前进按钮或“跳到”链接,播放相应的歌曲。 这适用于除第一张幻灯片之外的所有内容,它始终触发最后一张幻灯片开始播放。触发最后一张幻灯片也会触发最后一张幻灯片,因此不会将这两张幻灯片反转。 要看到这一点。 http://ably.ca/hootch

$(".rsNavItem").live('click', function(){
  var id = $(this).index() + 1;
  $(".rsContainer div:nth-child("+ id +") .ui360 .sm2-360btn").click();
});

我已经检查并重新检查了所有内容,:nth-​​child(1)每次选择:nth-​​child(9)。即使测试id == 1并使用first-child也行不通...... 有什么想法吗?

3 个答案:

答案 0 :(得分:1)

试试这个

var rsContainer = $('.rsContainer');
$('.rsNavItem').live('click', function(){
    var index = $(this).index();

    $('.rsSlide:eq(' + index + ') .ui360 .sm2-360btn', rsContainer).click();
});

答案 1 :(得分:0)

我找到了解决方案,但我不喜欢它......

$(".rsNavItem").live('click', function(){
  var id = $(this).index();
  soundManager.stopAll();
  $(".rsContainer").children().each(function(){
      if ($(this).index() == id) {
          $(this).find(".ui360 .sm2-360btn").click();
          return false;
      }
  });
});

我没有使用:nth-​​child,而是决定尝试遍历所有子元素并检查幻灯片索引的'skip-to'链接的索引,然后使用find()来查看按钮像以前一样...... 我不喜欢它,因为它是一个循环......看起来更像是一个性能影响而不是:nth-​​child ......

答案 2 :(得分:0)

当您定位时

$(".rsContainer div:nth-child(1) ...

你得到的结果不亚于37个!

这是他们父母的第一个孩子的所有div,无论他们是多么深层嵌套。

我猜你的意思是

$(".rsContainer > div:nth-child(1) ...

(直系后裔,不是任何级别后裔)