javascript - 定义在 twitter bootstrap 插件中返回数据的公共(public)方法

标签 javascript jquery jquery-plugins twitter-bootstrap

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

  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 类和插件的按钮返回一个文本数组

最佳答案

您想要将查询放入的表单 ($('button.general').button().getTextLabel()) 将应用插件在每个选定的元素上,所以我不知道这会有多大用处。此外,似乎没有必要破解插件源来添加此功能,因为您必须检查该元素是否具有按钮数据。

相反,我会建议一些类似的内容:

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"]

关于javascript - 定义在 twitter bootstrap 插件中返回数据的公共(public)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563724/

相关文章:

jquery - 幻灯片 CSS 背景

jquery - 需要合并JQuery文件以节省加载时间

javascript - 如何为 ng-repeat : AngularJS 中循环的每个 md-chip 应用样式

javascript - 如何使输入字段只接受 JavaScript 中的字母?

jquery - 有没有一种方法可以让图像随着浏览器高度的变化而调整大小?

javascript - 为什么我的 javascript 无法运行?

jquery-plugins - 如何将 jQuery 插件导入 Typescript 文件?

javascript - 设置 jsPlumb 线的容器元素

javascript - 在单击事件时更改数组中对象的值

php - JavaScript 数组 id 循环