2

jQueryに関数があります

  jQuery(function () {
      jQuery(".one").showcase({
          animation: { type: "fade" },
          titleBar: { autoHide: false },
          navigator: { autoHide: true }
      });
      prettyPrint();
      jQuery(".two").showcase({
          animation: { type: "fade" },
          titleBar: { autoHide: false },
          navigator: { autoHide: true }
      });
      prettyPrint();
      jQuery(".three").showcase({
          animation: { type: "fade" },
          titleBar: { autoHide: false },
          navigator: { autoHide: true }
      });
      prettyPrint();
  });

上記のコードに注意してください。ショーケース機能を3回繰り返します。配列ごとに一度関数を作成したい。どうすればそれが可能になりますか。jQuery配列の例を見ましたが、理解できません。

4

3 に答える 3

4

最善の方法は、配列を使用することではなく、jQuery セレクターを変更して 3 つすべてを一度にターゲットにすることです。

  jQuery(".one,.two,.three").showcase({
      animation: { type: "fade" },
      titleBar: { autoHide: false },
      navigator: { autoHide: true }
  });
  prettyPrint();

...複数のセレクターを使用しますが、これらの要素に別のクラスを追加したい場合がありますがshowcase(?)、次のように呼び出します。

  jQuery(".showcase").showcase({
      animation: { type: "fade" },
      titleBar: { autoHide: false },
      navigator: { autoHide: true }
  });
  prettyPrint();

... 代わりは。

于 2012-05-14T13:20:43.670 に答える
2

できるよ:

  jQuery(function () {
      var arObj = ['.one','.two','.three'];

      for(var i = 0; i< arObj.length ; i++){
          jQuery(arObj[i]).showcase({
              animation: { type: "fade" },
              titleBar: { autoHide: false },
              navigator: { autoHide: true }
          });
          prettyPrint();
      }
  });
于 2012-05-14T13:23:20.727 に答える
1

配列ベースのソリューションが必要な場合は、次のようにすることができます。

jQuery.each([".one", ".two", ".three"], function(index, value) {
    jQuery(value).showcase({
        animation: { type: "fade" },
        titleBar: { autoHide: false },
        navigator: { autoHide: true }
    });
    prettyPrint();
});

...また:

function fadeAll(arr) {
    jQuery.each(arr, function(index, value) {
        jQuery(value).showcase({
            animation: { type: "fade" },
            titleBar: { autoHide: false },
            navigator: { autoHide: true }
        });
        prettyPrint();
    });
}

それ以外の場合は、マットの答えに従ってください。

于 2012-05-14T13:24:23.233 に答える