我有一段代碼,我已經寫了應該跟蹤哪個形象是要在其上按下按鈕,根據頁面上的下一個出現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