Остановите функцию, jQuery - PullRequest
       10

Остановите функцию, jQuery

3 голосов
/ 27 апреля 2011

Я использую эту функцию мигания

(function($)
{
  $.fn.blink = function(options)
   {
       var defaults = { delay:500 };
       var options = $.extend(defaults, options);

       return this.each(function()
       {
           var obj = $(this);
           setInterval(
            function(){
               if($(obj).css("visibility") == "visible") {
                  $(obj).css('visibility','hidden');
               }
               else{
                  $(obj).css('visibility','visible');
               }
             },
            options.delay);
        });
    }
}(jQuery))

$("#bootUp p").blink({delay:300});  

Я бы хотел, чтобы он остановился на window.load

Я точно не знаю, как это сделать? Любая помощь приветствуется. Спасибо!

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Демо-версия

Вам необходимо отследить целые числа, возвращаемые из setInterval, а затем clearInterval для каждого из них.

var intervals = new Array();

(function($)
{
  $.fn.blink = function(options)
   {
       var defaults = { delay:500 };
       var options = $.extend(defaults, options);

       return this.each(function()
       {
           var obj = $(this);
           intervals[intervals.length] = setInterval(
            function(){
               if($(obj).css("visibility") == "visible") {
                  $(obj).css('visibility','hidden');
               }
               else{
                  $(obj).css('visibility','visible');
               }
             },
            options.delay);
        });
    }
}(jQuery))

$("#bootUp p").blink({delay:300});
$("#bootUp2 p").blink({delay:300});

$(document).ready(function(){
    for(var i=0;i<intervals.length;i++){
        clearInterval(intervals[i]);
    } 
});
0 голосов
/ 27 апреля 2011

Наиболее правильным решением было бы сохранить идентификаторы, возвращенные setInterval, а затем очистить их все с помощью clearInterval. Тем не менее, более простой / мозговой подход просто:

$("#bootUp p").replaceWith($("#bootUp p").clone());
...