0

この関数を再利用しようとしていますが、毎回異なるセレクター名に対して関数を複数回記述する代わりに、異なるセレクターを渡すことができるようにします。

これが私のコードでこれまでに得たものです。私のコードを見ると、Var elem を変更したいと思います。「about」を渡すと、var elem が $("about-slide .animate") に変更されます。これがうまくいくことを願っています。

    function animateLight() {
    var elem = $("#solutions-slide .animate");
    elem.fadeIn();
    setInterval(function(){
      elem.animate({
        opacity: "-=0.1"
      }, 200 , function() {
        if(elem.css("opacity") <= 0.5){
         $(this).css({
          opacity: '1'
        });
      }
      });
    },50);
  }
4

3 に答える 3

0

この問題を解決するにはいくつかの巧妙な方法があります。1 つの方法は、列挙型と switch ステートメントを使用することです。

var SELECTOR_ENUM = { solutions: 0, about: 1 };

function animateLight(selector) {
    var suffix = "-slide .animate";
    switch( selector ) {
        case 0:
            elem = $( "#solutions" + suffix );
        break;
        case 1:
            elem = $( "#about" + suffix );
        break;
        //you see where im going...
        default:
            elem = $( "#solutions" + suffix );
        break;
    }
        //the rest of your code
}

より多くのコードであることはわかっていますが、これは非常にスケーラブルです。新しいセレクターを列挙型と switch ステートメントに追加するだけで、すぐに使用できます。最良の部分は、関数を呼び出すたびにセレクターを入力する必要がないため、エラーが発生する可能性が最小限に抑えられることです。ただし、複数の関数でセレクターを使用する場合は、配列または辞書を使用してすべてのセレクターを 1 か所に保持することをお勧めします。

于 2013-08-26T00:54:56.077 に答える