0

小さなプラグインを書いていますが、同じ関数を 2 回書くのを避けることはできますか?

if(opts.effect === 'fade'){
                            // fade effect
                            (opts.overlay).children().fadeOut(opts.time_fadeOut).promise().done(function () {
                                overlay_content.fadeIn();
                            });     
                            //don't need to make the overlay fadeIn every time
                            (opts.overlay).fadeIn();
}

else if(opts.effect === 'slide'){
                            // sldie up/down effect
                            (opts.overlay).children().fadeOut(opts.time_fadeOut).promise().done(function () {
                               overlay_content.delay(500).fadeIn();
                            });
                            (opts.overlay).slideDown();
}

if ステートメントを使用するより良い方法はありますか? フルスクリプト

4

1 に答える 1

1

を使用して関数を決定し、次のopts.effectように使用してみてください(opts.overlay)[effect]();

var effect = (opts.effect === 'fade')?'fadeIn':'slideDown';
var cBfx = (opts.effect === 'fade')?fadeCB:slideCB;

(opts.overlay).children().fadeOut(opts.time_fadeOut).promise().done(cBfx );

(opts.overlay)[effect]();

function slideCB () { overlay_content.delay(500).fadeIn(); }

function fadeCB() {  overlay_content.fadeIn(); }
于 2013-02-15T15:31:34.053 に答える