3

我正在使用这个闪烁功能

(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 上停止

我不确定该怎么做,究竟是什么?任何帮助将非常感激。谢谢!

4

2 回答 2

1

现场演示

您需要跟踪从 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]);
    } 
});
于 2011-04-27T19:35:13.860 回答
0

最正确的解决方案是存储由返回的 id setInterval,然后用 清除它们clearInterval。但是,更简单/无脑的方法只是:

$("#bootUp p").replaceWith($("#bootUp p").clone());
于 2011-04-27T19:38:34.503 回答