我正在使用滑块,这是代码:
$(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未定义。来自函数slideMove中的if语句。为什么这不起作用?我仍在学习jQuery,如果这是一个明显的答案,那就很抱歉。
答案 0 :(得分:1)
更改此
slideMove('.slide');
到这个
slideMove($('.slide'));
在你的方法slideMove
中,你期待一个JQUERY DOM ELEMENT,因为你只给它一个STRING,它是特定DOM元素的类名
答案 1 :(得分:0)
YO!你把它改成了这个
...
$('.next_post').click(function(){
var $targetItem = $('.slide--active').prev();
slideMove($('.slide'));
});
$('.prev_post').click(function(){
var $targetItem = $('.slide--active').next();
slideMove($('.slide'));
});
...