質問

私はこのBlink関数を使用しています

(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で停止したいです

正確にそれを行う方法がわかりませんか?どんな助けも大歓迎です。ありがとう!

役に立ちましたか?

解決

ライブデモ

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

他のヒント

最も正しい解決策は、返されたIDを保存することです setInterval, 、そしてそれらすべてをクリアします clearInterval. 。ただし、より単純な/脳deadアプローチは次のとおりです。

$("#bootUp p").replaceWith($("#bootUp p").clone());
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top