我有一段代码,我已经写了应该跟踪哪个形象是要在其上按下按钮,根据页面上的下一个出现JavaScript变量越来越设置为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;
}
});
});
令人困惑的是,如果我连续点击2次#moveright按钮,偏移量将变为-1,然后变为0,并保持循环遍历2个值。 #moveleft按钮几乎会发生同样的情况。它循环通过值0和1.
我很困惑,因为唯一的地方,我设置偏移变量为0是如果超过4或低于-4,我没有看到它的原因在进入2或-2后设置为0。
你最好在jsfiddle上提供一个现实的例子,因为偏移操作在你的代码中非常混乱,很难对100%发生什么事情充满信心。 – kasitan
这两个移动功能之间有很多冗余。将事件委托给父元素,构建一个移动函数来处理点击事件,并且很可能问题会自行解决。 – itmitica
代码中的偏移量在哪里初始化? – Sid