親要素のsetIntervalを呼び出すと、子要素のsetIntervalが機能しなくなります。これが私がsetIntervalと呼ぶ方法です
$.fn.__blink = function(color) {
self = $(this);
if (self.attr('data-blinker') == undefined) {
var blinker = setInterval(function() {
original_color = self.css('background');
self.css('background', color).delay(300).queue(function(nxt) {
self.css('background', original_color);
nxt();
});
}, 1000);
self.attr('data-blinker', blinker);
}
return self;
};
要素は、子要素がメニュー項目のサブメニューであるナビゲーションメニューにあります
私が見ることができる問題は、グローバル変数としてself
abdoriginal_color
を作成したことです。そのため、__blink
2回目に呼び出すと、の値が2回original_color
目の呼び出しによって上書きされる可能性があります。
$.fn.__blink = function (color) {
var self = $(this);
if (self.attr('data-blinker') == undefined) {
var blinker = setInterval(function () {
var original_color = self.css('background');
self.css('background', color).delay(300).queue(function (nxt) {
self.css('background', original_color);
nxt();
});
}, 1000);
self.attr('data-blinker', blinker);
}
return self;
};
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加