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,但是在带有 jQ​​uery 的 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 回答