2

この場合、どのようにDRYを順守しますか(アコーディオンの数が多くなる可能性があります)。

$ ->
  $("#accordion-1").accordion
    autoHeight: false
    navigation: true
$ ->
  $("#accordion-2").accordion
    autoHeight: false
    navigation: true
4

3 に答える 3

5

セレクターによって別の関数を生成する関数を作成できるようです:

create = (selector) ->
  $ ->
    $(selector).accordion
      autoHeight: false
      navigation: true

それから:

create "#accordion1"
create "#accordion2"
于 2012-06-06T03:19:16.000 に答える
3

CoffeeScript はわかりませんが、jQuery を使用した JS では、$("#accordion-1,#accordion-2").accordion(...)両方の要素に同時に影響を与えることができます。

または、HTML のアコーディオンにクラスを適用してから、 like と言うことができます$(".accordion").accordion(...)。それが将来の悲しみを引き起こす可能性が最も低い方法だと私には思えます。アコーディオンが必要な場合は、適切なクラスを指定するだけです。HTML から削除すると、別のスクリプトを編集しなくても、操作する要素のリストから既に削除されています。

于 2012-06-06T03:15:39.693 に答える
1

最も簡単/最短の解決策:

$ ->
  $("#accordion-1, #accordion-2").accordion
    autoHeight: no
    navigation: yes
于 2012-06-06T10:42:51.287 に答える