1

如何在 twitter bootstrap 插件中定义返回数据的公共方法?例如我有这个片段:

  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()) 的表单将在每个选定的元素上应用插件,所以我不知道这会有多大用处。此外,似乎没有必要破解插件源来添加此功能,因为无论如何您都必须检查元素是否具有 Button 数据。

相反,我会建议以下内容:

JavaScript

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

例如,在 Bootstrap 文档页面上运行上述代码,使用选择器.btn而不是button.general,生成数组

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