如何在 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/