質問
私はこの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());
所属していません StackOverflow