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 から返された int を追跡し、次にそれらのそれぞれについて 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 に答える