jQuery、無名関数、および遅延に関しては、明らかに根本的なことが欠けています。
次のコードは、ページの読み込みごとに 1 回だけ機能します (クラスが追加され、1 秒後に削除されます。もう一度クリックすると、クラスが追加されますが、ページの期間中はクラスが削除されることはありません。ページをリロードします):
var jElement = $(currElem);
jElement.addClass("highlight")
.delay(1000)
.queue(function(){
$(this).removeClass("highlight");
});
でも、
(存在しない) 関数呼び出しをパラメーターとして追加し、それを匿名関数で呼び出すと、クラスの追加/削除の組み合わせが無期限に機能します。
var jElement = $(currElem);
jElement.addClass("highlight")
.delay(1000)
.queue(function(randomFunction){
$(this).removeClass("highlight");
randomFunction(); //this makes it seemingly 'miraculously' work??
});
サイドノート:
var jElement = $(currElem);
jElement.addClass("highlight")
.delay(1000)
.queue(function(randomFunction){
$(this).removeClass("highlight");
// this does NOT work; if I dont actually call the 'randomFunction'
// so that function, even though it does nothing; must somehow cause
// the implicit call of 'dequeue()' ??
});