变量不在jquery中更新

时间:2015-01-22 13:58:53

标签: jquery scroll

var thumbw = $('.video-thumbs li').width();
var feedw = $('.video-thumbs').width();
var thumbx = Math.floor(feedw/thumbw);


$('.scroll-right').on('click', function () {
  $(this).parent().each(function () {

      var scrollx = $(this).scrollLeft();
      var thumbcount = Math.floor(scrollx/thumbw);
      var nextscroll = thumbcount + thumbx;
      var nextthumb = 'li:nth-child(' + nextscroll + ')';
      var childx = $(this).find(nextthumb).offset().left;
      $(this).animate({ scrollLeft: childx - 40 }, 500, 'linear');
  }); 
});

我正在制作一个侧面滚动缩略图列表。缩略图的输入是" .scroll-right"的缩写。按钮。当您点击" .scroll-right" Feed应将滚动值设置为下一组中第一个缩略图左边缘的位置。我的问题是它适用于第一个,但之后childx变量不会更新。我有什么想法可以让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

好的,我明白了。

var childx = $(this).find(nextthumb).offset().left;

我正在使用' .offset()。left'而不是' .position()。left'所以childx变量是相对于文档而不是其父元素的缩略图位置。所以我把它改成了:

var childx = $(this).find(nextthumb).position().left;

它有效!