0

我真的可以使用一些帮助。我在下面有一个 javascript / jquery 滑块,它一遍又一遍地重复。如果可能,我希望它在单击特定按钮时停止重复。我是一个完全的新手,花了很多时间才达到这一点!任何帮助将不胜感激。

$(document).ready(function () {

    var i = 0;
    var z = 0;
    delay = 5000;
    var el = $('#scroll-script');
    var ql = $('#info-box');
    var classesb = ['fp-info-one', 'fp-info-two', 'fp-info-three', 'fp-info-four'];
    var classes = ['fp-slide-one', 'fp-slide-two', 'fp-slide-three', 'fp-slide-four'];
    var interval = setInterval(function () {
        el.removeClass().addClass(classes[i]);
        i = (i + 1) % 4;
        ql.removeClass().addClass(classesb[z]);
        z = (z + 1) % 4;
    }, delay);

});
4

4 回答 4

2
$(document).ready(function () {

    var i = 0;
    var z = 0;
    delay = 5000;
    var el = $('#scroll-script');
    var ql = $('#info-box');
    var classesb = ['fp-info-one', 'fp-info-two', 'fp-info-three', 'fp-info-four'];
    var classes = ['fp-slide-one', 'fp-slide-two', 'fp-slide-three', 'fp-slide-four'];
    var interval = setInterval(function () {
        el.removeClass().addClass(classes[i]);
        i = (i + 1) % 4;
        ql.removeClass().addClass(classesb[z]);
        z = (z + 1) % 4;
    }, delay);

    // code that stop repeat
    $('#your_button').on('click', function() {
      clearInterval(interval );
    });
});

因为,您正在使用setInterval()重复时间,所以要清除您需要使用的计时器clearInterval().

笔记

#your_button将以适当的选择器替换为目标按钮。

于 2012-08-29T06:49:07.370 回答
1

您只需要使用 clearInterval():

$(".somebutton").click(function()
{
  clearInteval(interval);
  interval=null;
});
于 2012-08-29T06:53:15.317 回答
0

我认为clearInterval()可以帮助您实现这一目标。

只需将其应用于click()事件。就像是:

$('#element').click(function(){
    clearInterval(Interval_OBJECT);
});
于 2012-08-29T06:48:59.670 回答
0

clearInterval(interval)当您想停止重复动作时使用。

就像是 :

 $('#btn').on('click', function(){ clearInterval(interval); });
于 2012-08-29T06:49:17.247 回答