나는 이미지가 버튼을 누를 때에 따라 페이지 옆에 표시하려고하는 추적하도록되어이 작성한 코드의 조각을자바 스크립트 변수를 0으로 설정하기 혼동
$(document).ready(function(){
$("#moveleft").click(function(){
var negoff = "false";
$("#slideshow>ul>li").animate({left: '-=' + actualwidth + 'px'}, 500);
$("#slideshow>ul>li:first-child").remove();
offset++;
console.log("Offset: " + offset);
if(offset > 4){
offset = 0;
}
if(offset < 0){
offset = offset * -1;
negoff = true;
}
$("#slideshow>ul").append('<li><img src="images/' +
contentcategories[offset] + '.jpg"/></li>');
$("#slideshow>ul>li:last-child").css({width: picturewidth + "px",
left: + 6 * actualwidth + "px"});
if(negoff){
offset = offset * -1;
negoff = false;
}
});
$("#moveright").click(function(){
var posoff = "false";
$("#slideshow>ul>li").animate({left: '+=' + actualwidth + 'px'}, 500);
$("#slideshow>ul>li:last-child").remove();
offset--;
console.log("Offset: " + offset);
if(offset < -4){
offset = 0;
console.log("Offset: " + offset);
}
if(offset > 0){
offset = offset * -1;
posoff=true;
console.log("Posoff: " + posoff);
}
$("#slideshow>ul").prepend('<li><img src="images/' +
contentcategories[(contentnum - 1) + offset] + '.jpg"/></li>');
$("#slideshow>ul>li:first-child").css({width: picturewidth + "px",
left: + 0 + "px"});
if(posoff){
offset = offset * -1;
posoff = false;
}
});
});
이것에 대한 혼란스러운 점은 #moveright 버튼을 두 번 연속해서 클릭하면 오프셋이 -1에서 0으로 이동하고 2 개의 값을 반복하여 순환한다는 것입니다. #moveleft 버튼과 거의 똑같은 일이 발생합니다. 그것은 0과 1의 값을 순환합니다.
오프셋 변수를 0으로 설정하는 유일한 곳은 4보다 높거나 -4보다 작아서 그 이유가 보이지 않기 때문에 혼란 스럽습니다. 2 또는 -2가 된 후 0으로 설정됩니다.
jsfiddle에 대한 현실적인 예제를 제공하는 것이 좋습니다. 오프셋 조작이 코드에서 상당히 지저분하므로 100 % 무슨 일이 일어나는지 확신하기가 어렵습니다. – kasitan
두 이동 기능 사이에는 많은 중복성이 있습니다. 이벤트를 부모 요소에 위임하고 클릭 이벤트를 처리하는 하나의 이동 함수 만 빌드하면 문제가 해결 될 가능성이 큽니다. – itmitica
코드에서 오프셋은 어디에 초기화됩니까? – Sid