1

まず第一に、このコードは、それ自体が醜いものであり、すべての意図と目的のために機能します。しかし、それは本当に私を見るのに病気と狂気の両方にさせます。

怠惰な人にとって、吸うコードの主要部分はこれです:

setTimeout(function() {
    toggle(); //off
    setTimeout(function() {
        toggle(); //on
        setTimeout(function() {
            toggle(); //off
            setTimeout(function() {
                toggle(); //on, stays for stallTime
                setTimeout(function() {
                    toggle(); //off
                    callback();
                }, stallTime);
            }, 300);
        }, 300);
    }, 300);
}, 300);

もちろん、要素のCSSクラスを変更するだけでアニメーションを制御したいと思います。ただし、transitionendなどwebkitTransitionEndは少なくとも信頼性がありません。私はこの種の恐ろしいコードに頼ることを余儀なくされていますか?理想的には、可変数の「フラッシュ」を設定できるようにしたいのですが、このコードはそれにはあまりにも厄介です。

私の汚物から私を救ってください。

4

2 に答える 2

3
var count = 5;
var i = setInterval(function() {
    toggle();
    count--;
    if(count == 0) {
        clearInterval(i);
        callback();
    }
}, 300);
于 2012-12-28T20:15:30.317 に答える
1

回避するためsetIntervalに、再帰関数を作成しました。

// link.addClass('hover'); //on - no longer needed

flash = function(count) {
    if (count > 1) {
        setTimeout(function() {        
            toggle();
            flash(count - 1);
        }, 300);
    } else {
        setTimeout(function() {
            toggle(); //off
            callback();
        }, stallTime);            
    }                
}

flash(6); // 2 * the number of flashes.
于 2012-12-28T20:58:34.910 に答える