1
我正在使用自動滾動腳本,我正在使用jquery中的函數移動到菜單上的單擊元素。我使用setInterval單擊菜單上的每個項目。直到現在一切正常。但是,當我需要停止setInterval時,問題出現了,我的意思是,如果用戶單擊其中一個元素,請停止setInterval。用戶單擊自動滾動腳本時清除setInterval
我有兩個問題或問題的你要跟:
- 這是做一個自動滾屏的正確方法?
- 如果不是,如果你給我一點線索,我會非常感激。如果這是正確的方法,如何知道點擊事件是由用戶還是腳本觸發的?
好吧。謝謝閱讀。我正在使用的代碼是下一個,正如我所說,正在工作正常,以循環滑動。非常感謝。就像一個旁註:對於客戶請願書,我不能使用jquery插件來創建滑塊,所以我必須手動完成。
$('.slider-controls a').live('click',function(e){
moveSlider($(this).attr('href'),e);
return false;
});
function moveSlider(toDiv,elem){
var nextPos = $(toDiv).position().top;
$('.slider-total').animate({
top: -nextPos
}, 700);
$('.slider-total div').removeClass('activo');
$(toDiv).addClass('activo');
}
var autoSlider = setInterval(function(){
var slideNext;
if (!($('.slider-total .activo').next().attr('id'))){
slideNext = '#' + $('.slider-total .post:first').attr('id');
} else {
slideNext = '#' + $('.slider-total .activo').next().attr('id');
}
$('a[href='+slideNext+']').click();
},4000);
是的。我知道它實際上停止了我的setInterval。我需要的是當用戶點擊一個項目時停止setInterval。我可以在$('。slider-controls a')中使用clearInterval(autoSlider)。live('click');功能。這裏的問題是腳本本身正在點擊每個項目,所以如果我以這種方式使用它,則滑塊只會動畫到第二個項目。 – Chuy
你的'setInterval'函數直接調用'moveSlider'。然後你可以在'click'事件中清除超時,因爲它來自用戶。總是試圖提取你的邏輯來分離你可以從事件或你的JavaScript調用的方法,而不是「假裝」成爲用戶 –