1

データを返す Twitter ブートストラップ プラグインでパブリック メソッドを定義するにはどうすればよいですか? たとえば、次のスニペットがあります。

  var Button = function (element, options) {
    this.$element = $(element)
    this.options = $.extend({}, $.fn.button.defaults, options)
  }

 /* BUTTON PLUGIN DEFINITION
  * ======================== */

  $.fn.button = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('button')
        , options = typeof option == 'object' && option
      if (!data) $this.data('button', (data = new Button(this, options)))

      if (option == 'toggle') data.toggle()
      else if (option) data.setState(option)
    })
  }

私はこのようなものが欲しいです:

 var text = $('button.general').button().getTextLabel();

.general クラスとプラグインが適用された各ボタンのテキストの配列を返します。

4

1 に答える 1

0

$('button.general').button().getTextLabel()( )内にクエリを配置するフォームは、選択したすべての要素にプラグインを適用するため、それがどれほど役立つかはわかりません。さらに、この機能を追加するためにプラグイン ソースをハックする必要はないように思われます。要素にボタン データがあるかどうかをチェックする必要があるからです。

むしろ、次のようなものを提案します。

JavaScript

var text = $('button.general')
  .filter(function () {
    return $(this).data('button');
  })
  .map(function (i, el) {
    return $(el).text();
  })

たとえば、 Bootstrap Documentation ページで上記を実行し、 の.btn代わりにセレクターを使用するbutton.generalと、配列が生成されます

["Left", "Middle", "Right", "Left", "Middle", "Right"]
于 2012-11-26T15:43:50.517 に答える