Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Stop a Function, jQuery

Tags:

jquery

die

I'm using this blink function

(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});  

I'd like for it to stop on window.load

I'm not sure how to do it, exactly? Any help would be much appreciated. Thanks!

like image 322
Yahreen Avatar asked Mar 21 '26 07:03

Yahreen


1 Answers

Live Demo

You need to track the ints returned from setInterval and then clearInterval for each of them.

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]);
    } 
});
like image 141
David Ruttka Avatar answered Mar 24 '26 14:03

David Ruttka