2014-10-10 2 views
0

Я работаю на ползуне, вот код для него:положение() рассматривается как функция

$(document).ready(function() { 
      // MAKE SLIDER WIDTH EQUAL TO ALL SLIDES WIDTH 
    var totalWidth = 0; 
    $('.slide').each(function() { 
     totalWidth = totalWidth + $(this).outerWidth(true); 
    }); 
    var maxScrollPosition = totalWidth - $(".slider_wrap").outerWidth(); 

    function slideMove($targetSlide) { 
     if ($targetSlide.length) { 
      var newPosition = $targetSlide.position().left; 
      if (newPosition <= maxScrollPosition) { 
       $targetSlide.addClass('slide--active'); 
       $targetSlide.siblings().removeClass("slide--active"); 
       $(".slider").animate({ 
        left : - newPosition 
       }); 
      } 
      else { 
       $(".slider").animate({ 
        left : - maxScrollPosition 
       }); 
      }; 
     }; 
    }; 
    $(".slide").width(totalWidth); 

    $(".slide:first").addClass("slide--active"); 
    $(".next_post").click(function(){ 
     var $targetItem = $(".slide--active").prev(); 
     slideMove('.slide'); 
    }); 
    $(".prev_post").click(function(){ 
     var $targetItem = $(".slide--active").next(); 
     slideMove('.slide'); 
    }); 
    }); 

Хотя я бы ожидать, что это работает, я получаю сообщение об ошибке, что говорит: TypeError: $ targetSlide.position не определено. Из инструкции if в функции slideMove. Почему это не работает? Я все еще изучаю jQuery так жаль, если это очевидный ответ.

ответ

1

это

slideMove('.slide'); 

к этому

slideMove($('.slide')); 

В вашем методе slideMove вы ожидающей Jquery DOM ЭЛЕМЕНТ, где, как вы даете ему только STRING который является именем класса этого конкретного элемента DOM

0

YO! изменить его к этому изменению

... 

$('.next_post').click(function(){ 
    var $targetItem = $('.slide--active').prev(); 
    slideMove($('.slide')); 
}); 

$('.prev_post').click(function(){ 
    var $targetItem = $('.slide--active').next(); 
    slideMove($('.slide')); 
}); 

... 
+0

Любимый yo, dawg – Fyxerz